上文一直在罗嗦GOF的原型模式,在本文中讲开始正式讨论Javascript的Prototype。对于Javascript的初学者来说,Prototype是个蛮高深的话题,其实并不尽然。
我说不尽然,意思是说理解Prototype的一般用法很简单。但是真正能做到融会贯通理解Prototype确实是件很难的事情。
今天我就从Prototype的基本开始讲。上文中我讲了原型模式。其实在Javascript中原型也是这个意思。Javascript中对象的原型属性的解释是:返回对象类型原型的引用。这是一个晕人的解释。其实就是指定了一个需要复制的对象。
文字再多也不如代码,上代码,说最简单的,任何类都继承自Object类:
function A()
{ }
A.prototype=new Object();
其实这样就相当于Object对象是A的一个原型,这样就相当于了把Object对象的属性和方法复制到了A上,和原型模式的精髓一样吧!
好,大概了解了prototype的基本用法,我们来看看原型究竟有什么用处。
最简单的用法,动态扩展类的方法和属性。
function People()
{
this.Jump=function(){
alert("I can jump");
}
}
现在要扩充方法:
People.prototype.Run=function(){
alert("I can run,too");
}
好,测试下:
var p=new People();
p.Jump();
p.Run();
时间: 2024-10-02 09:13:52