我使用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);
答案 0 :(得分:5)
this.key
相当于this['key']
。
答案 1 :(得分:2)
这是因为您的calendar
对象没有名为key
的属性。
注意:在表达式this.key
key
中,不会被名为key
的变量值替换。
答案 2 :(得分:0)
键变量将包含数组的索引,例如:(1,2,3 ...)当你键入this时你想要做什么.key就像 this.1为什么你得到未定义的