JavaScriptの4種類のthis呼び出しモード

1417 ワード

メソッドコールモード;関数コールモード;コンストラクタ呼び出しモード;アプリコールモード;
メソッドコールモード:
関数がオブジェクトの属性として保存されている場合、それを方法と呼びます.一つの方法が起動されると、thisはオブジェクトに結合されます.
関数コールモード:
このモードで関数を呼び出すと、thisはグローバルオブジェクトに結合されます.that方式で解決します.
var add = function(a,b){return a+b;}

var myObj = {};

myObj.double = function(){

  var that = this;

  var helper = function(){

    that.value = add(that.value,that.value);

  };  

  helper();

}

myObj.value = 3;

myOjb.double(); //===6
コンストラクタ呼び出しモード:
関数の前にnewを持っていくと、関数のプロトタイプのメンバーに接続された新しいオブジェクトが作成されます.
アプリコールモード:
JavaScriptは関数式のオブジェクト指向プログラミング言語ですので、関数は方法を持っています.
call()とappy()の最初のパラメータは関数を呼び出す対象で、関数内ではこのパラメータがキーワードthisです.