js原型鏈和原型

2021-08-21 11:40:44 字數 1085 閱讀 9367

1>原型:

在js中一切皆物件,那原型也是乙個物件,通過原型可以實現物件的屬性繼承,js的物件中包含著乙個[[prototype]]內部屬性,這個屬性所對應的就是物件的原型。[[prototype]]作為物件的內部屬性不能被直接訪問,所以為了方便檢視乙個物件的原型,提供了__proto__這個非標準的訪問器,在js的原型物件中還包含乙個constructor屬性,指向建構函式

constructor.prototype===__proto__

2>原型鏈:

每個建構函式都有乙個原型物件,原型物件都包含乙個指向建構函式的指標(constructor),而例項物件都包含乙個指向原型物件的內部指標(__proto__)。如果讓原型物件等於另乙個型別的例項物件,此時的原型物件將包含乙個指向另乙個原型的指標(__proto__),另乙個原型物件也包含著乙個指向另乙個建構函式的指標(constructor)。假如另乙個原型又是另乙個型別的例項上述關係依然成立,層層遞進,就構成了例項與原型的鏈條,原型鏈。

本質就是重寫原型物件,代之以乙個新型別的例項

function animal()

animal.prototype.gettype=function()

function dog()

dog.prototype=new animal();

dog.prototype.getname=function()

var xiaohuang=new dog();

原型鏈關係

xiaohuang.__proto__===dog.prototype

dog.prototype.__prto__===animal.prototype

animal.prototype.__proto===null

JS原型和原型鏈

建立建構函式 function word words word.prototype 建立例項 var w new word hello world w.print function w.print hello world w.alert hello world function.prototype....

JS 原型和原型鏈

先宣告乙個建構函式 function people name,age 把類的方法寫在建構函式原型物件中,子類就不能再通過呼叫父類建構函式來繼承方法 屬性還是可以繼承 給people的原型新增方法 people.prototype.speak function 建立子類繼承people functio...

js原型和原型鏈

一 從圖理解js原型與原型鏈 紅色部分 1 所有函式都有乙個prototype指標,指向原型物件,prototype指標的意義是 當我們使用這個建構函式new出新物件的時候,新物件的原型是誰。2 建構函式的prototype所指向的原型物件有乙個constructor指標,指回建構函式constru...