prototype 原型。
我們每建立一個函數 都會建立一個 prototype的屬性,這個屬性指向了這個函數的原型對象。
function a(){} ,a.prototype ,prototype原型隻能運用在對象上,不能運用在對象的執行個體上
也就是說
a.prototype 是可以的 var a=new a(), a.prototype 是不可以的。
所有對象的執行個體共享原型對象。什麼意思如下:
function a(){}
a.prototype.name="張三";//為原型對象加一個name的屬性。
var a=new a(); alert(a.name) // 張三
var a1=new a(); alert(a1.name)//張三
js 執行過程 a.name 先找 a有沒有 name屬性,如果沒有就去原型對象裡找,
當 a有name屬性的時候就會屏蔽原型對象裡的name 屬性(這裡是屏蔽不是删除)。
如上:
var a=new a(); a.name="李四";//這是給對象a添加一個name屬性,并不是修改了原型對象的name的屬性值。
alert(a.name) //李四
當删除了 a.name (delete a.name) 屬性,再調用 a.name 又會去原型對象裡找到 “張三”。
在js中對象是區分大小的。如上: a.name //undefine
在執行個體中 有個_proto_屬性就是指向原型對象的,但是這個屬性無法顯示調用。