与地图索引或点表示法绑定之间的区别

时间:2017-07-05 12:59:05

标签: angularjs

以下两个块之间是否存在功能或性能差异?

<foo ng-if="bar['qux']">
<foo ng-if="bar.qux">

如果bar.qux最初未定义,是否会产生影响?

注意:我完全理解对象在普通Javascript中的工作原理。这不是关于Javascript的问题,而是关于AngularJS中可能存在的差异(因为解析或任何其他实现细节)

2 个答案:

答案 0 :(得分:1)

我已经创建了一个合适的jsPerf测试用例,以确保更快地解析哪种符号,结果是点符号比括号符号快6%左右。

JsPerf测试用例:https://jsperf.com/test-angularjs-parse-speed

点符号更快,但是,性能差异似乎太小,所以我可以根据您(或您的团队)更具可读性和实用性来选择使用哪一个。因为两者每秒运行超过10,000,000次操作,所以7%不会对您的应用程序造成任何性能问题。

答案 1 :(得分:0)

使用点表示法,在初始化之后,对象关系从定期调用开始就不会改变。