再谈javascript面向对象编程

再谈javascript面向对象编程

ID:8999155

大小:118.39 KB

页数:7页

时间:2018-04-14

再谈javascript面向对象编程_第1页
再谈javascript面向对象编程_第2页
再谈javascript面向对象编程_第3页
再谈javascript面向对象编程_第4页
再谈javascript面向对象编程_第5页
资源描述:

《再谈javascript面向对象编程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、再谈javascript面向对象编程13人收藏此新闻,我要收藏

2、 新闻投递aoniao发布于:2012年02月28日(13评)前言:虽有陈皓《Javascript面向对象编程》珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力。另外这篇文章是一篇入门文章,我也是才开始学习Javascript,有一点心得,才想写一篇这样文章,文章中难免有错误的地方,还请各位不吝吐槽指正吐槽Javascript初次接触Javascript,这门语言的确会让很多正规军感到诸多的不适,这种不适来自于Javasc

3、ript的语法的简练和不严谨,这种不适也来自Javascript这个悲催的名称,我在想网景公司的Javascript设计者在给他起名称那天一定是脑壳进水了,让Javascript这么多年来受了这么多不白之冤,人们都认为他是Java的附属物,一个WEB玩具语言。因此才会有些人会对Javascript不屑,认为Javascript不是一门真正的语言,但是这此他们真的错了。Javascript不仅是一门语言,是一门真真正正的语言,而且他还是一门里程碑式的语言,他独创多种新的编程模式原型继承,闭包(作者注:闭包不是JS首创,应该Schem

4、e首创,prototypalinheritance和dynamicobjects是self语言首创,Javascript的首创并不精彩,谢谢网友的指正。),对后来的动态语言产生了巨大的影响。做为当今最流行的语言(没有之一),看看git上提交的最多的语言类型就能明白。随着HTML5的登场,浏览器将在个人电脑上将大显身手,完全有替换OS的趋势的时候,Javascript做为浏览器上的一门唯一真真的语言,如同C之于unix/linux,java之于JVM,Cobol之于MainFrame,我们也需要来重新的认真地认识和审视这门语言。另外

5、Javascript的正式名称是:ECMAScript,这个名字明显比Javascript帅太多了!言归正传,我们切入主题——Javascript的面向对象编程。要谈Javascript的面向对象编程,我们第一步要做的事情就是忘记我们所学的面向对象编程。传统C++或Java的面向对象思维来学习Javascript的面向对象会给你带来不少困惑,让我们先忘记我们所学的,从新开始学习这门特殊的面向对象编程。既然是OO编程,要如何来理解OO编程呢,记得以前学C++,学了很久都不入门,后来有幸读了《InsideTheC++ObjectMod

6、el》这本大作,顿时豁然开朗,因此本文也将以对象模型的方式来探讨的Javascript的OO编程。因为Javascript对象模型的特殊性,所以使得Javascript的继承和传统的继承非常不一样,同时也因为Javascript里面没有类,这意味着Javascript里面没有extends,implements。那么Javascript到底是如何来实现OO编程的呢?好吧,让我们开始吧,一起在Javascript的OO世界里来一次漫游首先,我们需要先看看Javascript如何定义一个对象。下面是我们的一个对象定义:1varo={}

7、;还可以这样定义一个对象12functionf(){}对,你们没有看错,在Javascript里面,函数也是对象。当然还可以1vararray1=[1,2,3];数组也是一个对象。其他关于对象的基本的概念的描述,还是请各位亲们参见陈皓《Javascript面向对象编程》文章。对象都有了,唯一没有的就是class,因为在Javascript里面是没有class关键字的,算好还有function,function的存在让我们可以变通的定义类,在扩展这个主题前,我们还需要了解一个Javascript对象最重要的属性,__proto__成

8、员。__proto__成员严格的说这个成员不应该叫这个名字,__proto__是Firefox中的称呼,__proto__只有在Firefox浏览器中才能被访问到。做为一个对象,当你访问其中的一个成员或方法的时候,如果这个对象中没有这个方法或成员,那么Javascript引擎将会访问这个对象的__proto__成员所指向的另外的一个对象,并在那个对象中查找指定的方法或成员,如果不能找到,那就会继续通过那个对象的__proto__成员指向的对象进行递归查找,直到这个链表结束。好了,让我们举一个例子。比如上上面定义的数组对象array

9、1。当我们创建出array1这个对象的时候,array1实际在Javascript引擎中的对象模型如下:array1对象具有一个length属性值为3,但是我们可以通过如下的方法来为array1增加元素:1array1.push(4);push这个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。