gpt4 book ai didi

javascript - 将对象分配给临时变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:31 26 4
gpt4 key购买 nike

如果你像这样创建对象:

building[45] = new Object();        
building[45].name = myName;
building[45].price = parseInt(myPrice);

building[128] = new Object();
building[128].name = myName;
building[128].price = parseInt(myPrice);

现在,如果我想在一个函数中使用 building[128],最好将它分配给一个临时变量,这样浏览器就不必遍历所有对象来查找 building[128] 属性?

例子:

var theID = 128;
var temp = building[theID]; //temp.name & temp.price

还是直接使用building[theID].namebuilding[theID].price

它们的查找方式有什么不同吗?

最佳答案

数组访问是一个常量时间操作(在 Big-O 表示法中,这是 O(1))。换句话说,浏览器不需要在访问 building[128] 之前迭代 127 个项目。

既然如此,我仍然建议将数组项存储在变量中。这样做的主要原因是 JavaScript 缩小程序能够将变量重命名为类似 a 的短名称,因此属性访问是 a.name 等等。这在这里和那里节省了几个字节,并且在更大范围内节省的总字节数非常可观。

JavaScript arrays are a specialized form of JavaScript object, and array indexes are really little more than property names that happen to be integers. JavaScript: The Definitive Guide, David Flanagan

使用 Flanagan 的数组定义,每次通过索引访问数组项时,实际上是在开始一个两步过程:访问数组对象,然后通过属性名称(索引)查找值。通过将数组项保存在变量中,访问它就像查看内存中的值一样简单。

关于javascript - 将对象分配给临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15651495/

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