将 'this' 作用域传递给回调函数

Passing 'this' scope to callback function

我正在尝试将 'this' 传递给回调函数。我知道 "suitable" 的方法是将其设置为一个变量并使用该变量...但这不是很优雅。

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)

关于 SO 的其他问题我已经尝试调查过,但也有类似的需求,但不完全相同。我怎样才能以最好的方式实现我想要的?

然后使用bind:

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

使用 bind,如 Bhojendra Nepal 所述。

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

do_this(callback.bind(this));