gpt4 book ai didi

javascript 调用函数作为数组元素

转载 作者:行者123 更新时间:2023-11-28 19:04:00 24 4
gpt4 key购买 nike

我在 Toptal youtube 视频中发现了这个示例,该示例使用的语法无法在 Chrome 中运行,除非我遗漏了某些内容。此示例出现在此处 ( JavaScript closure inside loops – simple practical example ) 并使用相同的语法。为什么这没有为我运行/下面指示的行是否包含有效的语法?

var x, y, funcs = [];

for(x=0; x<5; x++){

(function(){
var r = x;
funcs.push(function(){
console.log(r);
});

});
};
for (var y=0; y<5; y++){
funcs[y](); //<< is this valid JS syntax/why is it not working for me?
};

最佳答案

您需要在定义后添加一对括号 (),使这个匿名函数在第一个 for 循环中自动执行

(function(){
var r = x;
funcs.push(function(){
console.log(r);
});

})();

如果没有这个,您将继续在第一个循环中声明一个函数,该函数从未执行,因此永远不会将任何内容插入数组中。

第一次循环后,执行 console.log(funcs.length),您将得到 0,因为您的数组没有元素。

您当前的代码将给您未捕获类型错误:funcs[0]不是一个函数,这是因为funcs[0]未定义.

关于javascript 调用函数作为数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036144/

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