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
を表すことが証明された.