對(duì)象的原型鏈
只要是對(duì)象就有原型
原型也是對(duì)象
只要是對(duì)象就有原型, 并且原型也是對(duì)象, 因此只要定義了一個(gè)對(duì)象, 那么就可以找到他的原型, 如此反復(fù), 就可以構(gòu)成一個(gè)對(duì)象的序列, 這個(gè)結(jié)構(gòu)就被成為原型鏈
原型鏈到哪里是一個(gè)頭?
一個(gè)默認(rèn)的原型鏈結(jié)構(gòu)是什么樣子的?
原型鏈結(jié)構(gòu)對(duì)已知語(yǔ)法結(jié)構(gòu)有什么修正?
原型鏈的結(jié)構(gòu)
原型鏈繼承就是利用就是修改原型鏈結(jié)構(gòu)( 增加、刪除、修改節(jié)點(diǎn)中的成員 ), 從而讓實(shí)例對(duì)象可以使用整個(gè)原型鏈中的所有成員( 屬性和方法 )
使用原型鏈繼承必須滿足屬性搜索原則
屬性搜索原則
所謂的屬性搜索原則, 就是對(duì)象在訪問(wèn)屬性與方法的時(shí)候, 首先在當(dāng)前對(duì)象中查找
如果當(dāng)前對(duì)象中存儲(chǔ)在屬性或方法, 停止查找, 直接使用該屬性與方法
如果對(duì)象沒(méi)有改成員, 那么再其原型對(duì)象中查找
如果原型對(duì)象含有該成員, 那么停止查找, 直接使用
如果原型還沒(méi)有, 就到原型的原型中查找
如此往復(fù), 直到直到 Object.prototype 還沒(méi)有, 那么就返回 undefind.
如果是調(diào)用方法就包錯(cuò), 該 xxxx 不是一個(gè)函數(shù)