成都计算机培训 网络报名 Java软件开发培训课程 朗沃成都软件Java培训中心师资介绍 成都软件培训学校开班信息 朗沃成都Java软件开发培训学校学员就业情况 Java朗沃成都软件培训中心在线咨询
成都朗沃教育课程升级啦!
□ 您现在的位置:首页> 学员天地> web编程> 正文

抢先尝试JavaScript2.0

朗沃成都软件培训学校在线咨询         朗沃成都软件培训学校在线报名

关键词:Java

此文为国外Java软件工程师文章 

作为一个开发者和作家,我的一部分工作就是跟随web世界最新发展潮流——不管是关于公司合并、在线购物潮流、或者是编程技巧。我承认如今很难跟上业界里发生的所有事情,但是有个四处流传的小道消息却吸引了许多的目光:JavaScript2.0提案。作为新的JavaScript2.0\EMCAScript 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的东西:

Javascript代码
  1. // Current JavaScript 1.x "Class" Definition   
  2. function MyClass()   
  3. {   
  4.  this.member1 = "a string";   
  5.  this.member2 = 10;   
  6. }   
  7. var myClass = new MyClass(); // class instantiation   
  8.   
  9.   
  10. // JavaScript 2.0 Class Definition   
  11. class TrueClass   
  12. {   
  13.  this.member1 = "a string";   
  14.  this.member2 = 10;   
  15. }   
  16. var trueClass = new TrueClass(); // class instantiation  


当对象的构造函数和他们类型角色一起的时候,构造函数会翻倍。使用new 调用函数的时候会创建一个新对象,而后你就可以使用被bind到这个对象的本地关键字this来调用这个函数。函数的原型决定了这个对象的原型。不管什么类型的值赋予一个对象的原型,那么它都会被他所有的实例和汉字共享。使用原型 ,JavaScript可以模拟许多基于class的特性,尽管有些古怪。举个例子,在下面的代码中,myOtherDog尝试去重载父类Dog的getBreed() 函数。虽然myOtherDog的getBreed()函数是能够实现的,但是他没有重载成功——给了myOtherDog两个面包。

Javascript代码
  1. function Dog(name)   
  2. {   
  3.   this.name = name;   
  4.   this.bark = function() { alert(''Woof!''); };   
  5.   this.displayName = function() { alert(this.name); };   
  6. };   
  7.   
  8. var myDog = new Dog(''Killer'');   
  9. myDog.displayName(); //Killer   
  10. myDog.bark(); //Woof!   
  11.   
  12. Dog.prototype.getBreed = function()   
  13. {   
  14.   alert("Mutt");   
  15. };   
  16.   
  17. myDog.getBreed(); //Mutt   
  18.   
  19. myOtherDog = new Dog(''Bowzer'');   
  20.   
  21. // this hides getBreed() from other Dogs   
  22. myOtherDog.getBreed = function()   
  23. {   
  24.   return "Lhasa Apso";   
  25. };   
  26. alert(myOtherDog.getBreed()); //Lhaso Apso and Mutt!   
  27.   
  28. alert(myDog.getBreed()); //function is undefined  
朗沃成都软件培训学校在线咨询         朗沃成都软件培训学校在线报名
作者: 朗沃IT教育 成都中心
原载:朗沃IT教育 成都中心 lovoinfo.com
版权所有,转载时必须以链接形式注明作者和原始出处及本声明
在线客服
在线客服系统