使用angularjs forEach的this.key和this [key]之间的区别

时间:2016-01-05 09:59:01

标签: javascript angularjs

我使用forEach函数循环一个简单的对象,我将对象作为上下文传递。

当我尝试使用this[key]访问对象属性时,它可以正常工作但this.key无法正常工作,有人可以告诉我们它为什么会这样做吗?

var calendar =  {
        moveAll: false,
        moveSingleDay: false,
        translateRange : false
}

angular.forEach(calendar, function(val, key){
      console.log(this[key]); // returns val
      console.log(this.key); // returns undefined
}, calendar);

3 个答案:

答案 0 :(得分:5)

this.key相当于this['key']

答案 1 :(得分:2)

这是因为您的calendar对象没有名为key的属性。

注意:在表达式this.key key中,不会被名为key的变量值替换。

答案 2 :(得分:0)

键变量将包含数组的索引,例如:(1,2,3 ...)当你键入this时你想要做什么.key就像 this.1为什么你得到未定义的