我不确定在ECMAScript 6课程中访问this
上下文。
在此示例中,我想调用类addItem(..)
{this.addItem(data.points);}
class TEST {
constructor() {}
testMethod() {
for (let i = 1; i <= 10; i++) {
$.getJSON("test/" + i + ".json", function (data) {
this.addItem(data.points);
});
}
}
}
答案 0 :(得分:3)
请尝试以下代码段。
class TEST {
constructor() {}
testMethod() {
for (let i = 1; i <= 10; i++) {
$.getJSON("test/" + i + ".json", function(data) {
this.addItem(data.points);
}.bind(this)); // bind the this of the function you send to $.getJSON to the this of testMethod
}
}
}
&#13;
使用箭头功能,因为它们继承了外部clojure的词法范围。
class TEST {
constructor() {}
testMethod() {
for (let i = 1; i <= 10; i++) {
$.getJSON("test/" + i + ".json", data => {
this.addItem(data.points); // this is the this of testMethod
});
}
}
}
&#13;