我們每寫乙個函式,這個函式都有乙個原型
原型預設有乙個屬性叫constructor,constructor屬性預設指向這個函式
例如: 寫乙個建構函式
function person()
console.
log(person.prototype)
// 列印出來是 乙個物件
// object,
// __proto__:object
// }
// 給原型物件新增屬性
person.prototype.name =
'陳彬'
, person.prototype.age =23,
console.
log(person.prototype)
// object ,
// age:23
// __proto__: object
// }
// 取值
console.
log(person.prototype.name)
//陳sir
// 建立乙個物件
var p1 =
newperson()
console.
log(p1)
//person {}
// p1是乙個空物件為什麼可以取到prototype裡的屬性和值呢
console.
log(p1.name)
//陳彬
console.
log(p1.age)
//23
這就涉及到原型鏈
原型鏈
總結一下 每乙個建構函式都有乙個原型,原型裡有乙個construtor屬性,這個屬性指向建構函式
當我們new乙個物件p1的時候 ,並且訪問p1物件上的屬性時,如果p1這個物件本身沒有這個屬性,就會通過
__proto__去訪問原型上的屬性,如過原型上也沒有這個屬性時,就會通過__proto__去訪問object,如果object也沒有這個屬性
那就真的沒有了 就是undefined
上圖一般在 object.prototype原型上找 如果沒有,就是undefined了
原型模式與原型鏈(js學習)
物件的原型 prototype 指向另乙個物件,本物件的屬性繼承於他的原型物件。原型物件 原型模式 我們建立的每乙個函式都有乙個prototype 原型 屬性,這個屬性是乙個指標,指向乙個物件。這個物件就是通過呼叫建構函式而建立的那個物件例項的原型物件。使用原型物件,就不必在建構函式中定義物件例項的...
原型及原型鏈
原型定義 原型是function物件的乙個屬性,它定義了建構函式製造出的物件的公共祖先。通過建構函式產生的物件,可以繼承該原型的屬性和方法。原型是物件屬性prototype對應的值。注 原型是乙個物件。我們可以直接在建構函式的prototype上直接新增屬性,也可以將建構函式的prototype指向...
設計原型之原型模式
實現 public class person implements cloneable public void setname string name override protected person clone throws clonenotsupportedexception 測試 publi...