Javascript 为什么是;这";指向「;窗口对象“;在回调函数中?
我不希望答案能够正确使用它,但我想知道为什么“this”指向窗口对象。请。。。救救我 因为Javascript 为什么是;这";指向「;窗口对象“;在回调函数中?,javascript,callback,this,Javascript,Callback,This,我不希望答案能够正确使用它,但我想知道为什么“this”指向窗口对象。请。。。救救我 因为参数通过值传递,这意味着 callBackFunc.getValue(TestingFunc.alertValue) 等于 var callBackFunc = { value : "CallBackValue", getValue : function(callback) { callback(); } } var TestingFunc =
参数
通过值
传递,这意味着
callBackFunc.getValue(TestingFunc.alertValue)代码>
等于
var callBackFunc = {
value : "CallBackValue",
getValue : function(callback) {
callback();
}
}
var TestingFunc = {
value : "TestingValue",
alertValue : function() {
console.log(this);
}
}
$(function() {
callBackFunc.getValue(TestingFunc.alertValue);
});
因此,callback()
起作用
callBackFunc.getValue(function() {
console.log(this);
});
因此,您将获得窗口
如果参数
经过名称
,在本例中名称
是TestingFunc.alertValue
,则您将获得所需的:
callback()
等于TestingFunc.alertValue()
但是,js
通过value
而不是name将普通回调函数引用作为参数传递给callBackFunc.getValue
,因此没有当前的此
上下文将由普通函数形成,默认的此
将导致全局对象(窗口)
为了形成上下文,我们可以使用调用、绑定、应用
方法。您可以绑定
到当前函数或对象,这是使其引用您想要的内容的一种方法。这是全局上下文,您应该开始阅读
(function() {
console.log(this);
})()