gpt4 book ai didi

javascript - 为什么 Object.keys 比 hasOwnProperty 快?

转载 作者:可可西里 更新时间:2023-11-01 01:45:00 24 4
gpt4 key购买 nike

 // hasOwnProperty approach 
for (key in obj) {
if (obj.hasOwnProperty(key)) {
value = obj[key];
}
}

// Object.keys approach
keys = Object.keys(obj);
for (i = 0, l = keys.length; i < l; i++) {
value = obj[keys[i]];
}

根据 jsperf,Object.keys 方法的速度提高了 50% 以上 http://jsperf.com/object-keys-vs-hasownproperty/45

这是为什么?

最佳答案

  • Object.keys 查找所有拥有可枚举 属性(哦,数组很快)。
  • for in 还查找继承的可枚举 属性,而不仅仅是自己的
  • for in + hasOwnProperty 额外测试所有查找的属性是否是自己的属性。

即使没有继承的可枚举属性,要做的工作也比不做要多。

关于javascript - 为什么 Object.keys 比 hasOwnProperty 快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com