Каковы основные отличия между JavaScript и ActionScript 3?

Я знаю, что оба языка из того же стандарта ECMA-262. Кажется, что эти два становятся очень похожими на слушателей события добавления JavaScript для экземпляров базового объекта через методы как freeze и seal в 5-м выпуске EMCAScript-262 и таком. Я задавался вопросом, каковы различия?

36
задан Paul Sweatte 18 August 2012 в 22:30
поделиться

4 ответа

Прежде всего, ActionScript 3 и JavaScript определены в ECMA-262, поэтому у них много общего. Например, оба языка поддерживают наследование прототипов. Однако неверно, что ActionScript полностью реализует ES4.

ActionScript реализует несколько функций, которые не определены в ECMA-262, и некоторые - но, конечно, не все - из ES4.

Так что же AS3 добавляет к ECMA-262? Вот еще отличия от JavaScript:

  • Динамически и статически типизированный код
  • Пакеты, классы и интерфейсы
  • Стандартная модель наследования OO (не основанная на прототипах, статически типизированная)
  • Тип данных uint и int
  • E4X (ECMA-357)
  • Безопасная для типов условная компиляция (ES4)
  • Тип данных Vector. (ES4)

Возможно, я забыл некоторые особенности. Я не уверен, что XML, XMLList и т.д. уже определены в 262 или пришли с 357.

Ключевое различие, однако, заключается в стандартной библиотеке. JavaScript поставляется с парой предопределенных классов, таких как DOMElement, и дополнениями, зависящими от браузера. ActionScript имеет довольно большую стандартную библиотеку с такими функциями, как потоковое видео, и совместим на всех платформах.

33
ответ дан 27 November 2019 в 05:59
поделиться

Я программировал как на ActionScript, так и на Javascript, и с менее технической точки зрения я вижу два основных различия.

1) JavaScript более мощный. Вы можете делать с языком гораздо больше, потому что у него нет «компилятора» или типов. Есть несколько отличных фреймворков, таких как ExtJS и jQuery , которые пытаются упростить для вас вещи, но даже с ними вы действительно можете нанести огромный урон, если хотите. к.

2) ActionScript гораздо более ограничен и, следовательно, его намного проще поддерживать. Adobe проделала большую работу, чтобы уберечь вас от сложных частей ECMAScript. Объекты ECMAScript, прототипное наследование и замыкания - это три концепции, которые вам действительно не нужно понимать, чтобы программировать на ActionScript. Вам просто нужно понять, как использовать объект Adobe «Класс».

Для простых целей я предпочитаю JavaScript. Однако, как только проект станет большим, все зависит от того, для кого вы пишете код. Если бы у меня была команда из 5 разработчиков, программирующих на разрозненном стартапе, я бы сразу выбрал JavaScript. Однако в рамках крупной корпорации или академического сообщества вам может быть безопаснее полагаться на платформу Adobe.

Надеюсь, что это поможет.

13
ответ дан 27 November 2019 в 05:59
поделиться

Один тип - Safetly. ActionScript требует, чтобы вы установили тип для всех объектов, а JavaScript - нет (если на то пошло, в JavaScript одна переменная может быть одного типа, а затем сразу же установить другой тип).

ActionScript является объектно-ориентированным. Хотя вы можете вроде как сделать это в JavaScript, Actionscript позволяет наследование объектов и т. Д.

5
ответ дан 27 November 2019 в 05:59
поделиться

По сути, основное различие, которое я обнаружил, состоит в том, что ActionScript - это более подробный статически типизированный язык на основе классов, тогда как javascript является прототипом языка.

К сожалению, в ActionScript нет вывода типов, поэтому использование Flex Builder выдает предупреждение каждый раз, когда вы оставляете что-то нетипизированным, что я считаю ненужным и чрезмерно многословным, не только делает его более подробным, чем javascript, но и я считаю, что эквивалентный код более подробный, чем C #.

Однако дополнительная многословность действительно имеет улучшения yield perf и дополнительную безопасность типов во время компиляции. К сожалению, это также значительно увеличивает время сборки: в приложениях Java Script любого размера я привык к мгновенной обратной связи, тогда как в моем последнем проекте ActionScript время сборки превышало 2 минуты.

4
ответ дан 27 November 2019 в 05:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: