js中的属性

时间:2015-12-30 17:56:59

标签: javascript node.js

为什么在{}如何解决之后未定义属性?

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;

2 个答案:

答案 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;