JavaScriptにおけるThisの指向
1189 ワード
thisを理解する JavaScriptは語法作用領域(または静的作用領域)である:作用域は関数定義の時に がある. thisは、Javascriptが動的作用を実現するための方法であり、thisの指向は関数実行時に決定され、誰がこの関数を呼び出したかは、thisが誰を指すかを決定する. 四つのよく使われるthisの指向直接にthisを呼び出します.windowを指します. オブジェクト方法は、 はcallとappyで紐付けされています. この場合、バインディングは失われます.つまり他のオブジェクトに再結合することができます.は、ビッド()を使用して、バインディング損失の問題を解決することができます.つまり、この関数は他のオブジェクトに再結合できないということです. いくつかの例 setTimeout:関数が実行されるときにのみ、呼び出し関数のオブジェクトにthisをバインドする.コールバック関数がオブジェクトの方法である場合、セットTimeoutは、メソッド内部のthisキーワードをグローバル環境に向けて、定義時にあるオブジェクトではなくてもよい.以下のように、Obj.yを匿名関数に入れて解決しても良いし、bind を使用しても良い. jQuery使用中:thisはDOMオブジェクトですか?それともjQueryオブジェクトですか?
bar.foo()
を呼び出し、この関数を呼び出すオブジェクト、すなわちバーを指す.foo.call(bar)
、foo.apply(bar)
、(両者の違いは主に参照にあります).バインディングされたオブジェクトを指します.var x = 1;
var obj = {
x: 2,
y: function () {
console.log(this.x);
}
};
setTimeout(function () {
obj.y();
}, 1000);
// 2
${this}
の使用に注意してください.