5 4 原型模式及原型鏈詳細講解

2021-09-28 21:45:41 字數 1123 閱讀 2301

我們每寫乙個函式,這個函式都有乙個原型

原型預設有乙個屬性叫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...