通过这个'范围回调函数

时间:2015-02-03 14:01:54

标签: javascript scope

我试图通过这个'回调函数。我知道"合适的"这样做的方法是将其设置为变量并使用变量......但这不是很优雅。

var that = this;
chrome.storage.sync.set(this.defaultOptions, function () {
    that.loadOptions();
});

我正在尝试别的东西,但我无法弄清楚如何去做。以下是我的尝试:

chrome.storage.sync.set(this.defaultOptions, (function () {
    this.loadOptions();
}).call(this));

但它没有成功。我收到此错误:

Error in response to storage.set: Error: Invocation of form 
get(object, undefined) doesn't match definition 
get(optional string or array or object keys, function callback)

关于我试过的其他问题有类似需求但不完全相同。如何以最佳方式实现我想要的目标?

2 个答案:

答案 0 :(得分:5)

然后使用bind

do_this((function() {
    returh this.test + 5;
}.bind(this));

答案 1 :(得分:0)

如Bhojendra Nepal所述,使用bind

function callback() {
  return this.test + 5;
}

do_this(callback.bind(this));