相关疑难解决方法(0)

当你传递'this'作为参数时

我正在努力学习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),当它被首先定义(何thisobj)?


我想我已经通过这个场景了解了this它在执行时设置的情况.它不会作为参数传递,以便稍后在该行调用参数时进行设置.

javascript bind this

6
推荐指数
1
解决办法
2033
查看次数

标签 统计

bind ×1

javascript ×1

this ×1