JavaScriptJavaScript高級程序設(shè)計(jì)148頁這樣描述指針[[prototype]]:當(dāng)構(gòu)造函數(shù)創(chuàng)建一個新實(shí)例后,該實(shí)例內(nèi)部包含一個指針(內(nèi)部屬性),指向構(gòu)造函數(shù)的原型.ECMA-262第五版管這個指針叫做[[prototype]].雖然在腳本中沒有標(biāo)準(zhǔn)的方式訪問它,但在Firefox,Safari,Chrome中提供了(__proto__).149頁第一次出現(xiàn),書中這樣寫道:雖然在所有實(shí)現(xiàn)中都無法訪問[[prototype]],但可以通過isPrototypeOf()方法來確定對象之間是否存在這種關(guān)系.從本質(zhì)上講,如果[[prototype]]指向調(diào)用isPrototypeOf()方法的對象,那么這個方法就返回true那么看下面的代碼JavaScriptfunctionSuperType(){this.property=true;}SuperType.prototype.getSuperValue=function(){returnthis;};functionSubType(){this.subproperty=false;}SubType.prototype=newSuperType();SubType.prototype.getSubValue=function(){returnthis.subproperty;};varinstance=newSubType();alert(SuperType.prototype.isPrototypeOf(instance));//truealert(instance.__proto__==SuperType.prototype)//false第一個alert為true按照149頁描述的,那么instance是指向SuperType.prototype的,可是我們這樣測試的時候卻alert出的是false,又表示instance的[[prototype]]并不指向SuperType.prototype.這不矛盾嗎?
isPrototypeOf()方法的含義?
千萬里不及你
2019-04-16 17:06:05