我正在努力学习this,这让我有点困惑:
var randomFunction = function(callback) {
var data = 10;
callback(data);
};
var obj = {
initialData: 20,
sumData: function(data) {
var sum = this.initialData + data;
console.log(sum);
},
prepareRandomFunction: function() {
randomFunction(this.sumData.bind(this));
}
};
obj.prepareRandomFunction();
Run Code Online (Sandbox Code Playgroud)
是否this设计为自己设置在代码中首次呈现的位置?例如,在我的例子中,我成功地使用它来引用obj并绑定函数obj,但是因为this它被作为回调函数传递,所以阻止它被设置randomFunction为什么(即什么阻止它从字面上传递"这个.sumData.bind(this)"这样this设置为randomFunction从那里调用时?"
我是一个努力学习的菜鸟.谢谢.
更新
我并不是一般都在询问它是如何工作的(我不认为).我很想知道为什么this在我将其定义为我的randomFunction调用的参数的地方设置,而不是在其中callback调用的地方randomFunction.我可能是错的,但如果我要换掉我现在this.sumData.bind(this)的callback(data)那个,我想我会得到不同的结果.是不是因为callback是一个参考this.sumData.bind(this),当它被首先定义(何this为obj)?
我想我已经通过这个场景了解了this它在执行时设置的情况.它不会作为参数传递,以便稍后在该行调用参数时进行设置.