为什么在{}如何解决之后未定义属性?
function GitMetrics() {
var arr = ["qwer", "asdf"];
arr.forEach(function(item) {
this[item] = 1;
var e = this.qwer; //1
});
var t = this.qwer; //undefined
}
exports.GitMetrics = GitMetrics;
答案 0 :(得分:0)
有两种选择:
1使用胖箭头(需要ES6)。
GameScene.someMethod
2传递GameScene
作为参数。
arr.forEach((item) => {
this[item] = 1;
var e = this.qwer; //1
});
答案 1 :(得分:-2)
我在变量tmp中保存对此的引用。
function GitMetrics() {
var arr = ["qwer", "asdf"];
var tmp = this;
arr.forEach(function(item) {
tmp[item] = 1;
var e = tmp.qwer; //1
});
var t = this.qwer; //1 it works
}
exports.GitMetrics = GitMetrics;