还有的是没有什么区别,因为至少铬47.0.2526.80(64位)的性能。
Testing in Chrome 6.0.3359 on Mac OS 10.13.4
-----------------------------------------------
Test Ops/sec
non-frozen object 106,825,468 ±1.08% fastest
frozen object 106,176,323 ±1.04% fastest
性能测试(可从http://jsperf.com/performance-frozen-object获得):
const o1 = {a: 1};
const o2 = {a: 1};
Object.freeze(o2);
for(var key in o1);
for(var key in o2);
更新30.10.2019:Chrome 78.0.3904(64位)的性能没有差异
2019年9月17日更新:Chrome 76.0.3809(64位)的性能没有差异
更新03.05.2018:Chrome 66.0.3359(64位)的性能没有差异
更新06.03.2017:Chrome 56.0.2924(64位)的性能没有差异
2015年12月13日更新:Chrome 47.0.2526.80(64位)的性能没有差异
使用Chrome 34,在@pimvdb的测试用例中,冻结对象的性能要比未冻结对象好一些(结果如下)。但是,差异似乎还不足以证明使用此技术可获得性能上的好处。
http://jsperf.com/performance-frozen-object
Testing in Chrome 34.0.1847.116 on OS X 10.9.2
----------------------------------------------
Test Ops/sec
non-frozen object 105,250,353 ±0.41% 3% slower
frozen object 108,188,527 ±0.55% fastest
运行@kangax的测试用例表明,该对象的两个版本的性能几乎相同:
http://jsperf.com/performance-frozen-object-prop-access
Testing in Chrome 34.0.1847.116 on OS X 10.9.2
----------------------------------------------
Test Ops/sec
non-frozen object 832,133,923 ±0.26% fastest
frozen object 832,501,726 ±0.28% fastest
http://jsperf.com/http-jsperf-com-performance-frozen-object-instanceof
Testing in Chrome 34.0.1847.116 on OS X 10.9.2
----------------------------------------------
Test Ops/sec
non-frozen object 378,464,917 ±0.42% fastest
frozen object 378,705,082 ±0.24% fastest