this.key和this[key]之间的差异,使用angularjs for Each

difference between this.key and this[key] using angularjs forEach

本文关键字:this key 使用 for Each angularjs 之间      更新时间:2023-09-26

我使用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);

this.key等效于this['key']

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

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

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