打印本文 打印本文 关闭窗口 关闭窗口
(Javascript)prototype的一个优势也是缺点
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2468  更新时间:2009/4/23 11:29:35  文章录入:mintao  责任编辑:mintao
 

如何在Javascript实现OO编程?恐怕最好的方式就是充分利用prototype属性。关于prototype的介绍有很多,我就不赘述了。比较基本的原理是,当你用prototype编写一个类后,当你new一个新的object,浏览器会自动把prototype中的内容替你附加在object上。这样,通过利用prototype,你也就实现了类似OO的Javascript。

在Javascript中,object就是一个associative array。一个function就是一个类。当你编写如下function时,其实就是定义了一个类,该function就是它的构造函数。

function MyObject(name, size)

       {

              this.name = name;

              this.size = size;

       }

之后,你可以方便的通过MyObject类的prototype属性来方便的扩充它。比如,你可以给他添加其他的属性和方法。

       MyObject.prototype.tellSize = function()

       {

              return "size of "+this.name+" is "+this.size;

       }

      

       MyObject.prototype.color = "red";

       MyObject.prototype.tellColor = function()

       {

              return "color of "+this.name+" is "+this.color;

       }

      

       var myobj1 = new MyObject("tiddles", "7.5 meters");

       domDiv.innerHTML += myobj1.tellColor()+"<br /><br />";

你可以想象,当你调用tellColor()方法后,结果是这样的:

color of tiddles is red

很方便的是,prototype属性可以动态添加。比如,你需要往MyObject中加入一个height属性,并希望其提供一个tellHeight()方法来获得height属性的值。你可以在上面的代码后,继续添加如下的代码:

       MyObject.prototype.height = "2.26 meters";

       MyObject.prototype.tellHeight = function()

[1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口