JavaScript 関数内で「return this」は何をするのか、その目的は何なのか疑問に思います。次のコードがあるとします。
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
関数内で「return this」は何をしますか?
上記のコードが何をするのか、また「this」キーワードの用途は何なのかはわかっています。関数内で「return this」が何をするのかがわかりません。
ベストアンサー1
これは、メソッドが現在呼び出されているオブジェクト インスタンスを参照します。これはチェーンに使用されます。たとえば、次のようにすることができます。
myObject.foo().bar();
は( への参照)foo
を返すので、オブジェクトに対しても が呼び出されます。これは、this
myObject
bar
myObject.foo();
myObject.bar();
ただし、入力する量は少なくなります。
より完全な例を以下に示します。
function AnimalSounds() {}
AnimalSounds.prototype.cow = function() {
alert("moo");
return this;
}
AnimalSounds.prototype.pig = function() {
alert("oink");
return this;
}
AnimalSounds.prototype.dog = function() {
alert("woof");
return this;
}
var sounds = new AnimalSounds();
sounds.cow();
sounds.pig();
sounds.dog();
sounds.cow().pig().dog();