我团队中的一位开发人员提到,通过点表示法访问Object属性比括号表示法更快。例如:
var sample = { name: 'First Name' }
var nameBracket = sample['name']
var namePeriod = sample.name
在这种情况下,他们认为namePeriod
的分配将比nameBracket
更快。
这是真的吗?如果是,为什么?如果没有,为什么不呢?
相关:如何检验这个假设或类似的问题来确定JS函数的速度?
当你想尝试测试不同方法的速度时,实际上的工具似乎是jsperf.com.
有人已经对此提出了质疑,并为此创建了一个测试
http://jsperf.com/dot-notation-vs-square-bracket-notation
结果似乎大致相同。导致慢Windows的原因是当括号的内容是一个变量时——在这一点上,编译器不能再对自己说"哦,['o']和.foo..继续!"。