私たちはこのオープンソースプロジェクトを世界中の人々に提供したいと考えています。このチュートリアルの内容をあなたが知っている言語に翻訳するのを手伝ってください。
レッスンに戻る

呼び出し感の差異

重要性: 5

新しい rabbit オブジェクトを作りましょう:

function Rabbit(name) { this.name = name; } Rabbit.prototype.sayHi = function() { alert(this.name); }; let rabbit = new Rabbit("Rabbit");

これらの呼び出しは同じことをしますか?それとも違う?

rabbit.sayHi(); Rabbit.prototype.sayHi(); Object.getPrototypeOf(rabbit).sayHi(); rabbit.__proto__.sayHi();

最初の呼び出しは、this == rabbit を持っており、他のものは thisRabbit.prototype と等しいものを持っています。なぜなら、それは実際にドットの前のオブジェクトだからです。

従って、最初の呼び出しのみ Rabbit を表示し、それ以外は undefined を表示します。:

function Rabbit(name) { this.name = name; } Rabbit.prototype.sayHi = function() { alert( this.name ); } let rabbit = new Rabbit("Rabbit"); rabbit.sayHi(); // Rabbit Rabbit.prototype.sayHi(); // undefined Object.getPrototypeOf(rabbit).sayHi(); // undefined rabbit.__proto__.sayHi(); // undefined