簡體   English   中英

將'this'范圍傳遞給回調函數

[英]Passing 'this' scope to callback function

我正在嘗試將“ 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)

我嘗試研究的其他問題也有類似的需求,但並不完全相同。 如何以最佳方式實現自己想要的?

然后使用bind

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

使用bind ,如Bhojendra Nepal所述。

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

do_this(callback.bind(this));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM