gpt4 book ai didi

javascript - 使用点符号或键时 JavaScript 如何查找值

转载 作者:行者123 更新时间:2023-11-28 13:45:57 26 4
gpt4 key购买 nike

我有一个大型 JavaScript 对象,其中包含根据需要添加和删除的属性。与此类似的东西:

var data = {

data1: {
subscribers : ["sub1", "sub2"]
},

data2: {
subscribers : ["sub1", "sub2"]
}

//[0...*]

};

我想要来自“data2”的订阅者,因此我使用 data["data2"].subscribers 来访问此信息。

但是我的问题是:

  • 访问此类属性的 JavaScript 内部工作原理是什么(点表示法,使用属性名称)?
  • 对象的大小是否会影响订阅者数组的返回速度?
<小时/>

我的猜测是,大小会影响接收返回数据的速度,因为我认为 JavaScript 访问属性的方式是在对象上使用 for 循环:

function getSubs(name) {
for(var prop in data) {
if(prop === name) {
return data[prop].subscribers;
}
}
}
var subs = getSubs("data2");

最佳答案

不,它不能通过迭代所有属性来工作,而是基本上通过使用常用的 hash table pattern 来工作。编译前和编译后的类(了解更多 here regarding V8 )。

事实上,这是 javascript 引擎内部工作的一部分,而不是规范。您需要了解的是:

是的,拥有许多属性可能会产生影响,但比您想象的要轻得多。别担心。

关于javascript - 使用点符号或键时 JavaScript 如何查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14380522/

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