私はこれに似た質問がいくつかあることを理解していますが、オブジェクト関数内からコールバック関数が呼び出されたときに、なぜこのようなコンテキスト(値)が変化するのかを知ることができませんでした。 関数内からコールバックが呼び出されたとき、なぜ(this)の値が変わるのですか?
var obj = {
objproperty: "this is a property of obj",
func1: function(x,cb){
console.log(this) // refers to obj
var output_value = x + 20;
cb(output_value);
}
};
obj.func1(123,function(output_value){
console.log(output_value);
console.log(this); // does this refers to window or undefined??
});
私が知っている限り、これは3番目のconsole.logに 'this'を付けてはいけません。それはobjオブジェクトで呼び出されたので?