为什么在angularjs中有两种方式可以访问json键?

为什么在angularjs中有两种方式可以访问json键?,angularjs,Angularjs,下面是我的代码片段 <body ng-app='abc' ng-controller='MainCtrl as ctrl'> <div ng-repeat="note in ctrl.notes"> <span class="label"> {{note[1]}}</span> <span class="label"> {{note.label}}</span> <span class="stat

下面是我的代码片段

<body ng-app='abc' ng-controller='MainCtrl as ctrl'>
  <div ng-repeat="note in ctrl.notes">
   <span class="label"> {{note[1]}}</span>
   <span class="label"> {{note.label}}</span>
   <span class="status" ng-bind="note.done"></span>
  </div>
</body>
我可以使用
a.label
a['label']
访问标签,我可以知道这两种方式的原因吗?第二个
a['label']
就足够了,对吗


另外,如果您在我的notes对象中观察到,第一行的一个键是
[1]
,我可以使用html中的
注释[1]
访问它,请告诉我这是怎么可能的?

您可以通过
a.label
a['label]访问它
因为在Javascript中,可以通过两种方式获取对象属性:
object.property
object['property']

让obj={
属性:“OK”
}
控制台日志(对象属性);

log(obj['property'])
您可以通过
a.label
a['label']
获得访问权限,因为在Javascript中,您可以通过两种方式获得对象属性:
object.property
object['property']

让obj={
属性:“OK”
}
控制台日志(对象属性);
log(obj['property'])更新:
参考来自

计算每个点或括号表达式需要时间。如果同一个属性被多次使用,那么访问该属性一次,然后将该值存储在局部变量中以供将来使用更为合理

以下示例在循环中多次使用bar。然而,为了避免重复计算相同的值而浪费时间,bar存储在局部变量中

var object = {
  baz: {
    foo: {
      bar: 5
    }
  }
};

var bar = object.baz.foo.bar;

var count = 0;

for (var i = 0; i < 100000; i++) {
  count += bar;
  // better than count += object.baz.foo.bar;
}
更新: 参考来自

计算每个点或括号表达式需要时间。如果同一个属性被多次使用,那么访问该属性一次,然后将该值存储在局部变量中以供将来使用更为合理

以下示例在循环中多次使用bar。然而,为了避免重复计算相同的值而浪费时间,bar存储在局部变量中

var object = {
  baz: {
    foo: {
      bar: 5
    }
  }
};

var bar = object.baz.foo.bar;

var count = 0;

for (var i = 0; i < 100000; i++) {
  count += bar;
  // better than count += object.baz.foo.bar;
}

根据这一点,点表示法和[]表示法的工作方式不同,但在角度js中,两者的工作方式似乎相同,因此不需要两者right@RajeshKumarTonukunoori,没错,但在这种情况下,用户只是尝试访问对象属性,没有循环,似乎没有任何区别,不是吗?根据这一点,点符号和[]符号的工作方式似乎不同,但在角度js中,两者的工作方式似乎相同,所以不需要两种right@RajeshKumarTonukunoori,没错,但在这种情况下,用户只是尝试访问对象属性,没有循环,似乎没有任何区别,不是吗?
表示法主要使用,而
[]
表示法主要使用,
表示法主要使用,而
[]
表示法主要使用