Pet.call(this, words) 這句話中的this該怎么理解?
????function?Pet(words){???????? ????this.words?=?words;???????? ????this.speak?=?function?()?{ ????????????console.log(?this.words) ????????} ????}???? ???function?Dog(words){????????//Pet.call(this,?words);?//結(jié)果:?Wang ???????Pet.apply(this,?arguments);?//結(jié)果:?Wang????}????var?dog?=?new?Dog('Wang'); ????dog.speak();
Pet.call(this,?words)????這句話中的this該怎么理解?
2022-06-02
function Pet(words)是Pet類型的構(gòu)造函數(shù),Pet.call(this, words)就是用傳遞的this值,也就是Dog類型,來(lái)替換Pet構(gòu)造函數(shù)中的this,使Dog類型的構(gòu)造函數(shù)繼承了Pet類型的構(gòu)造函數(shù),就可以獲得其中的words屬性和speak函數(shù),所以Dog實(shí)例化出的dog對(duì)象可以使用Pet類型上的speak函數(shù)