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);?//結果:?Wang
???????Pet.apply(this,?arguments);?//結果:?Wang????}????var?dog?=?new?Dog('Wang');
????dog.speak();Pet.call(this,?words)????這句話中的this該怎么理解?
2022-06-02
function Pet(words)是Pet類型的構造函數,Pet.call(this, words)就是用傳遞的this值,也就是Dog類型,來替換Pet構造函數中的this,使Dog類型的構造函數繼承了Pet類型的構造函數,就可以獲得其中的words屬性和speak函數,所以Dog實例化出的dog對象可以使用Pet類型上的speak函數