JavaScript 関数内で「return this」は何をしますか? 質問する

JavaScript 関数内で「return this」は何をしますか? 質問する

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を返すので、オブジェクトに対しても が呼び出されます。これは、thismyObjectbar

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();

http://jsfiddle.net/jUfdr/

おすすめ記事