javascriptにおけるthisの使い方

1185 ワード

thisはJavaScript言語のキーワードです.
1.常に関数の直接的な使用者を指す.
2.newキーワードがあれば、thisはnewから出てくるその対象を指します.
3.イベントでは、このイベントをトリガーする対象を指す.
第一種類:関数呼び出し
グローバル呼び出し、thisはグローバルオブジェクトを指します.

var x=1;
function a(){
    console.log(this.x);
}
a();    //1
第二種類:オブジェクト呼び出し
あるオブジェクトのメソッドとして呼び出すと、あるオブジェクトを指します.
function test() {
  console.log(this.x);
}

var obj = {};
obj.x = 1;
obj.m = test;

obj.m(); // 1
第三の種類:この関数によって、新しいオブジェクトが生成されます.この場合、thisはこの新しいオブジェクトを指す.
function test() {
 this.x = 1;
}

var obj = new test();
obj.x // 1
第四種類:appy呼び出しapply()は、関数を変更する呼び出しオブジェクトとして機能する関数の方法である.最初のパラメータはこの関数を呼び出したオブジェクトを表します.したがって、thisはこの最初のパラメータを指している.
var x = 0;
function test() {
 console.log(this.x);
}

var obj = {};
obj.x = 1;
obj.m = test;
obj.m.apply() // 0
apply()のパラメータが空の場合は、デフォルトでグローバルオブジェクトを呼び出します.したがって、このときの運転結果は0であり、thisがグローバルオブジェクトを指すことを証明している.
最後の行のコードを
obj.m.apply(obj); //1
実行結果は1となり、thisがオブジェクトobjを表すことが証明された.