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函數