JavaScriptの4種類のthis呼び出しモード
1417 ワード
メソッドコールモード;関数コールモード;コンストラクタ呼び出しモード;アプリコールモード;
メソッドコールモード:
関数がオブジェクトの属性として保存されている場合、それを方法と呼びます.一つの方法が起動されると、thisはオブジェクトに結合されます.
関数コールモード:
このモードで関数を呼び出すと、thisはグローバルオブジェクトに結合されます.that方式で解決します.
関数の前にnewを持っていくと、関数のプロトタイプのメンバーに接続された新しいオブジェクトが作成されます.
アプリコールモード:
JavaScriptは関数式のオブジェクト指向プログラミング言語ですので、関数は方法を持っています.
call()とappy()の最初のパラメータは関数を呼び出す対象で、関数内ではこのパラメータがキーワードthisです.
メソッドコールモード:
関数がオブジェクトの属性として保存されている場合、それを方法と呼びます.一つの方法が起動されると、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です.