我知道这两种语言都来自相同的ECMA-262标准.看来,这两个正在成为使用JavaScript通过类似的方法增加对核心对象实例的事件监听器非常相似freeze
,并seal
在EMCAScript-262第5版和这样的.我想知道差异是什么?
首先,ActionScript 3和JavaScript都在ECMA-262中定义,因此它们有很多共同之处.例如,这两种语言都具有原型继承.但是,ActionScript完全实现ES4是不正确的.
ActionScript实现了ECMA-262中未定义的一些功能以及ES4中的一些功能 - 但绝对不是全部功能.
那么AS3为ECMA-262添加了什么?这些也是与JavaScript的区别:
动态和静态类型的代码
包,类和接口
标准OO继承模型(不基于原型,静态类型)
uint和int数据类型
E4X(ECMA-357)
类型安全的条件编译(ES4)
Vector.
也许我已经忘记了一些功能.我不确定XML,XMLList等是否已经在262中定义或者357附带了.
然而,关键的区别在于标准库.JavaScript附带了几个预定义的类,如DOMElement和依赖于浏览器的添加.ActionScript有一个相当大的标准库,具有视频流等功能,并且在所有平台上都是一致的.
我一直在使用ActionScript和Javascript进行编程,从技术性较低的角度来看,我看到了两个主要的区别.
1)JavaScript更强大.您可以使用该语言执行更多操作,因为它没有"编译器"或类型.有一些很棒的框架,比如ExtJS和jQuery,可以为你尝试简化一些事情,但即使有了它们,如果你愿意的话,你真的可以做出惊人的伤害.
2)ActionScript更加局限,因此更容易维护.Adobe做了很多工作,让您远离ECMAScript的困难部分.ECMAScript对象,原型继承和闭包是您在ActionScript中编程时无需理解的三个概念.您只需要了解如何使用Adobe的"类"对象.
对于简单的用途,我更喜欢JavaScript.但是,一旦项目变大,它取决于您编写的代码.如果我有一个由5名开发人员组成的团队,他们会在一个充满斗志的初创公司中进行编程,那么我会在心跳中选择JavaScript.但是,在大公司或学术界的周长中,依靠Adobe的平台可能会更安全.
希望有所帮助.
一个是Safetly类型.Actionscript要求您为所有对象设置类型,JavaScript不要(为此,在JavaScript中,一个变量可能是一种类型,然后立即设置为另一种类型).
Actionscript是面向对象的.虽然你可以在JavaScript中使用它,但是Actionscript允许对象继承等.