您的位置:首页 > Web前端 > JavaScript

JavaScript的面向对象

2011-11-12 16:04 204 查看
        JavaScript采用原型模式实现面向对象。原型的英文为Prototype,也意为雏形。雏形相比原型更好的说明了JavaScript的面向对象原理,因为雏形更能表明原始对象的不完整性。

       原型模式在《设计模式》中有介绍,“明确一个实例作为要生成对象的原型,通过复制该实例来生成新的对象”。原型模式在静态语言(如C++)中的作用不太显著,但对于动态语言(如JavaScript)则是核心思想。通常在面向对象中,对象的原型就是类,从类生成对象是普遍的认同。但另一种观点认为,类不是必须的,对象不需要从类生成,而是复制已有的对象。JavaScript正是采用了这种思想。

       需要新对象时,只需向对象添加属性。添加函数对象,就成为方法。如果属性不存在,则会查找prototype属性指定的对象。所以JavaScript是利用委派而不是继承实现面向对象。

function Tool() {
this.Use = function() { return "using..."; }
}

var tool = new Tool();
alert(tool.Use());

function Hammer() {}
Hammer.prototype = new Tool();

var hammer = new Hammer();
alert(hammer.Use());

       在创建对象时,函数对象起到了构造器的作用。当调用new时完成以下操作:

生成对象
将原型的内部属性__proto__设置为原型的prototype属性,这里为Tool.prototype
调用函数,这里为Tool,参数为调用new时的参数
返回新对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息