作者为我们简要的介绍了下正在制定中的JavaScript2.0标准,有许多新特性的介绍和相应的代码演示:
作为一个开发者和作家,我的一部分工作就是跟随web世界最新发展潮流——不管是关于公司合并、在线购物潮流、或者是编程技巧。我承认如今很难跟上 业界里发生的所有事情,但是有个四处流传的小道消息却吸引了许多的目光:JavaScript2.0提案。作为新的 JavaScript2.0EMCAScript 4.0计划于2009年终稿,但是日前已经做了很多的工作-包括好的、不好的。今天,我们来看看这份提案规范的一部分,看下他们是在改进这门语言还是狗尾 续貂。
JavaScript的历史
为了更好的理解JavaScript标准是如何实现的,让我们简要的看下这门语言的历史吧
JavaScript是ECMAScript脚本语言的一个分支。ECMAScript 是Ecma国际组织标准化的,这门语言的另外2个分支是ActionScript(macroMedia,Adobe)和JScript(微软)。 JavaScript是有Netscape的Brendan Eich开发的,最初叫Mocha而后是LiveScript,最后改为JavaScript。1993.3月,Sun公司发布了支持 JavaScript的Navigator2.0(译者:我感觉这是错误的,可查看原文)。鉴于JavaScript作为客户端脚本语言取得广泛流行,微 软制定了自己的脚本语言JScript,发布于1996.8月的ie3.0中。Netscape公司在日内瓦提交了JavaScript给Ecma国际标 准化组织,申请成为标准。
Ecma国际标准化组织是个管理信息、通信系统的、基于成员制度,非营利性国际机构 。这个机构起初是为了标准化欧洲的计算而于1991年成立,在它成立后的40年间,Ecma总共出台了370封标准和90个科技报告,其中包括了CD- ROM卷和文件系统,c++语言规范和他们的开放xml格式。第一版的ECMAScript(Ecma-262)于1997在Ecma全员大会上通过。不 管JavaScript还是JScript他们都是兼容ECMAScript的,同时也提供了Ecma规范没有提供的特殊的额外的特性。甚至在今 天,JavaScript和JScript依然有个很多不兼容的地方。JavaScript受如java、c++等面向对象语言的影响很深,这也意味着初 学者能很容易的上手。
语言的增强
更加的面向对象
迄今为止,JavaScript是使用的原型来做继承的,而不是经典的面向对象式的继承自父类。事实上,如下面实例的一样,如今JavaScript没有class的东西:
// Current JavaScript 1.x "Class" Definition
function MyClass()
{
this.member1 = "a string";
this.member2 = 10;
}
var myClass = new MyClass(); // class instantiation
// JavaScript 2.0 Class Definition
class TrueClass
{
this.member1 = "a string";
this.member2 = 10;
}
var trueClass = new TrueClass(); // class instantiation
当对象的构造函数和他们类型角色一起的时候,构造函数会翻倍。使用new 调用函数的时候会创建一个新对象,而后你就可以使用被bind到这个对象的本地关键字this来调用这个函数。函数的原型决定了这个对象的原型。不管什么 类型的值赋予一个对象的原型,那么它都会被他所有的实例和汉字共享。使用原型 ,JavaScript可以模拟许多基于class的特性,尽管有些古怪。举个例子,在下面的代码中,myOtherDog尝试去重载父类Dog的 getBreed() 函数。虽然myOtherDog的getBreed()函数是能够实现的,但是他没有重载成功——给了myOtherDog两个面包。
function Dog(name)
{
this.name = name;
this.bark = function() { alert('Woof!'); };
this.displayName = function()9
7
3
1
2
3
4
8
: