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...