gpt4 book ai didi

javascript - 串联会产生垃圾吗?

转载 作者:行者123 更新时间:2023-11-28 15:23:07 25 4
gpt4 key购买 nike

我确实在网上搜索过这个信息,有些人说因为javascript必须创建一个新的字符串对象来存储连接的结果,有些人说因为字符串不收集对象。

也许这取决于上下文。例如,如果我有一个像

这样的对象数组

动物["blue_dog","re​​d_dog","yellow_cat","re​​d_bird","green_bird"...]

我有一个带有 animalcolor 参数的函数,在这个函数中我将像这样访问我的对象:

动物[动物+"_"+颜色]

大多数时候,我在绘制文本时都会进行串联,这显然每帧不会发生很多次。所以即使变成了垃圾,也是微不足道的。但是当使用串联作为对象的键时,由于循环,这种串联可能每帧发生一千次,然后这可能会成为一个问题。

最佳答案

执行类似animals[color + "_"+ Animal] 的操作会创建一个用于访问对象的临时值。该临时值将由垃圾收集器或在 block /函数调用结束时收集(取决于实现)。

我的假设(基于我自己使用编译器的经验)是,由于结果不存储在变量中,因此它将被放置在堆栈上并在函数完成后释放。但是,这又取决于引擎的编写方式。

我绝不是编译器方面的专家。

关于javascript - 串联会产生垃圾吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30417687/

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