0
重要私はES6クラスステートメントを使用しています。クラスステートメントでvar this = that
のようなものが許可されていないため、関数で定義された "クラス"に関する回答は適用されません。私が見た答えはうまくいかない。コールバック以外の変数は表示されません。内部ES6クラスステートメント内でコールバック内のクラスメンバーにアクセス
WebPageReader.Storage = class {
constructor(object) {
this.Object = object;
var self = this; // self is out of scope when constructor completes
}
// var self = this; // not allowed here
Load() {
chrome.storage.sync.get('somesetting',
function (setting) {
console.log(this.Object); // I need to do something with this.Object defined at the class level, but this points to something besides my class.
}
);
}
}
'var = this;'はかなり許容されています。 'Load'関数本体の最初の行に挿入するか、または矢印関数をコールバックハンドラとして使用します。 – zerkms
@zerkms、私はそれを試してみるでしょうが、私はそれが動作するとは思わない/ bの負荷の他の変数は表示されません。ありがとう! – toddmo
矢印機能を使用する@zerkmsは素晴らしい解決策です。あなたは答えとして再投稿するべきです。 'chrome.storage.sync.get( 'somesetting'、setting => console.log(this.Object)); ' –