为了账号安全,请及时绑定邮箱和手机立即绑定

JS中使用hasOwnProperty比直接访问属性要慢?

JS中使用hasOwnProperty比直接访问属性要慢?

12345678_0001 2019-02-12 17:25:14
多次测试发现hasOwnProperty比直接访问元素慢8-10倍。MDN对hasOwnProperty的介绍:这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。原来我的理解是,hasOwnProperty不需要查找原型链,所以速度会更快。现在我的理解是hasOwnProperty需要通过查找和判断该属性是否继承自原型链所以速度更慢。正确的理解应该怎么的,或者说是我测试有误,望指出,谢谢!测试环境:win 10, i3-6100 3.7GHz, 8G RAM, Chrome 61。测试代码如下:
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

没有具体考究,猜测快的原因是因 Loop-invariant code motion 被移出了循环。试一下循环里再对 toString 调用不可内联函数去除引擎优化


function BLACKHOLE () {

  try { } catch (e) { }

}


查看完整回答
反对 回复 2019-02-16
  • 1 回答
  • 0 关注
  • 778 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号