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

一句话理解javascript prototype属性

2010-02-20 13:46 141 查看
这句话是:prototype中定义的是对象实例要访问的属性或方法的一个替补。

举例说明一下:

//1)定义了一个对象:
function A()
{
//给对象定义一个属性
this.f1="this is f1";
}
//2)我们可以这样使用对象:
var a = new A();
alert(a.f1)//弹出消息:this is f1
//3)我们可以扩展对象:
A.prototype.f1 = "this is new f1";
A.prototype.f2 = "this is f2";
//4)继续使用对象:
alert(a.f1)//弹出消息:this is f1【不是this is new f1】
alert(a.f2)//弹出消息:this is f2


说明:当我们使用对象时,首先从对象的定义中去找对应的属性,找不到再从prototype中去找。

如4)中调用a.f1,就能从对象本身定义中找到f1属性,不会再去prototype中去找f1属性,所以扩展的f1属性就用不上了

而a.f2,则因为在对象本身定义中没有找到f2属性,那么要继续从prototype中寻找有没有f2的定义,找到就返回它
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息