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

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

一個原型鏈繼承的筆試題

一個原型鏈繼承的筆試題

有只小跳蛙 2019-03-20 21:19:58
function foo(){};function bar(){    return{        method: function(){}    };};foo.prototype = new bar();console.log(foo.prototype instanceof bar);//false為什么上面的判斷返回false?我自己試了一下,如果把bar()里面的return內(nèi)容去掉就返回true,請教一下大神們?yōu)槭裁??function foo(){};function bar(){};foo.prototype = new bar();console.log(foo.prototype instanceof bar);//true
查看完整描述

3 回答

?
互換的青春

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

構(gòu)造函數(shù)如果有return,那么return內(nèi)容就是構(gòu)造函數(shù)的返回值,所以這里foo.prototype實(shí)際上是個bar返回的對象,constructor是Object構(gòu)造函數(shù)而不是bar函數(shù)


查看完整回答
反對 回復(fù) 2019-04-09
?
梵蒂岡之花

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

補(bǔ)充一下,樓主要去深入理解一下instanceof 具體是通過什么來判斷,上面的筆試題可以簡化為:


function bar(){

    return{

          method: function(){}

    }

};


console.log( new bar() instanceof bar);

或者

console.log( {method: function(){}} instanceof bar);


instanceof的本質(zhì)是什么呢? a instanceof b 就等價于 myInstanceof( a, b)


 

function myInstanceof( obj , fn ){

    var getPrototypeOf =Object.getPrototypeOf;

    var proto=obj ;

    while(getPrototypeOf && getPrototypeOf(proto)||proto.__proto__){

        if( proto === fn.prototype ){

            return true;

        }

    }

    return false;

}


查看完整回答
反對 回復(fù) 2019-04-09
  • 3 回答
  • 0 關(guān)注
  • 533 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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