Javascript 为什么是;这";指向「;窗口对象“;在回调函数中?

Javascript 为什么是;这";指向「;窗口对象“;在回调函数中?,javascript,callback,this,Javascript,Callback,This,我不希望答案能够正确使用它,但我想知道为什么“this”指向窗口对象。请。。。救救我 因为参数通过值传递,这意味着 callBackFunc.getValue(TestingFunc.alertValue) 等于 var callBackFunc = { value : "CallBackValue", getValue : function(callback) { callback(); } } var TestingFunc =

我不希望答案能够正确使用它,但我想知道为什么“this”指向窗口对象。请。。。救救我

因为
参数
通过
传递,这意味着

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);
        })()