gpt4 book ai didi

javascript - 匿名函数和内存消耗

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:38 24 4
gpt4 key购买 nike

就内存消耗而言,这些是等效的还是我们为后者中的每个对象获取一个新的函数实例?

var f=function(){alert(this.animal);}
var items=[];
for(var i=0;i<10;++i)
{
var item={"animal":"monkey"};
item.alertAnimal=f;
items.push(item);
}

var items=[];
for(var i=0;i<10;++i)
{
var item={"animal":"monkey"};
item.alertAnimal=function(){alert(this.animal);};
items.push(item);
}

编辑

我在想,为了让闭包正常工作,第二个实例确实会在每次通过时创建一个新函数。这是正确的吗?

最佳答案

您应该使用第一种方法,因为每次解释器通过该行时第二种方法都会创建一个函数。

关于您的编辑:我们一直在同一个作用域中,因为 JavaScript 具有函数作用域而不是 block 作用域,所以这可能是可优化的,但我没有遇到这样的实现不要每次都创建它。我建议不要依赖这个(可能是可能的)优化,因为如果你广泛使用这种技术,缺乏支持的实现可能会超过内存限制(这很糟糕,因为你不知道哪个实现会运行它,对吧?)。

关于javascript - 匿名函数和内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299926/

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