第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

isPrototypeOf()方法的含義?

isPrototypeOf()方法的含義?

千萬里不及你 2019-04-16 17:06:05
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.這不矛盾嗎?
查看完整描述

2 回答

?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個贊

isPrototypeOf和proto不等價,那書上也說了,可以通過isPrototypeOf()方法來確定對象之間是否存在這種關(guān)系.
這個關(guān)系就是原型鏈的關(guān)系,isPrototypeOf是判斷a是否存在于b的原型鏈這么一個關(guān)系,所以是這樣
javascriptinstance.__proto__===SubType.prototype
instance.__proto__.isPrototypeOf(instance)
SubType.prototype.__proto__===SuperType.prototype
instance.__proto__.__proto__===SuperType.prototype
instance.__proto__.__proto__.isPrototypeOf(instance)
明白了么?這個原型鏈一直往上面,都在instance的原型鏈里,所以都是true。
                            
查看完整回答
反對 回復(fù) 2019-04-16
?
喵喵時光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個贊

當(dāng)構(gòu)造函數(shù)創(chuàng)建一個新實(shí)例后,該實(shí)例內(nèi)部包含一個指針(內(nèi)部屬性),指向構(gòu)造函數(shù)的原型
你通過
varinstance=newSubType();
創(chuàng)造了SubType的實(shí)例instance
instance.__proto__//SuperType{property:true,getSu...
instance//SubType{subproperty:false,property:true...
所以
instance.__proto__===SubType.prototype//true
instance.__proto__.__proto__===SuperType.prototype//true
這種想象叫做原型鏈。
舉個例子:你去一個古老的山村家族找一個人,你先問孩子輩的人是否認(rèn)識,可能他們太年輕,不認(rèn)識;于是你去問他們的父母,是否認(rèn)識,可能他們也不認(rèn)識;然后你就要問他們的爺爺奶奶,是否認(rèn)識。。。
js會順著原型鏈向上尋找,會有兩種結(jié)果:
-找到了,返回或修改
-沒找到,返回undefined
                            
查看完整回答
反對 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 444 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號