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類型,來替換Pet構(gòu)造函數(shù)中的this,使Dog類型的構(gòu)造函數(shù)繼承了Pet類型的構(gòu)造函數(shù),就可以獲得其中的words屬性和speak函數(shù),所以Dog實(shí)例化出的dog對(duì)象可以使用Pet類型上的speak函數(shù)