javascript - 将 'this' 范围传递给回调函数

标签 javascript scope

我正在尝试将“this”传递给回调函数。我知道这样做的“合适”方法是将其设置为一个变量并使用该变量……但这不是很优雅。

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

关于javascript - 将 'this' 范围传递给回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28300796/

相关文章:

JavaScript 正则表达式到 Java 正则表达式

javascript - jQuery 事件回调速度 : Anonymous vs. 命名函数

c++ - 为什么具有相同名称但不同签名的多重继承函数不被视为重载函数?

javascript - Angular 表达式在 Controller 范围内不起作用

python - 为什么这段代码没有抛出 'not defined' 错误?

javascript - 动态绑定(bind)值以双击

javascript - 错误 : spawn npm ENOENT

javascript - 如何将对象数组转换为在 typescript 中具有动态键的单个对象

c++ - 关于使用新运算符的 C++ 范围

python - python中的变量范围和Try Catch