javascript - Way 不会将参数传递给匿名函数导致它返回一个函数

标签 javascript oop anonymous-function

为什么将参数传递给匿名函数会影响结果?例如,下面的脚本将 a1 显示为 function(),将 a2 显示为数组。

var a1=(function(){return [1*2,2*2,3*2];});
var a2=(function(v){return [1*v,2*v,3*v];})(2);
console.log(a1,a2);

结果:

function() [2, 4, 6]

最佳答案

因为对 a1 的所有赋值只是创建一个匿名函数,但实际上并没有执行它。

对 a2 的赋值会创建同时执行该函数,因为您随后添加了括号来实际调用它。

要创建等效的代码,您需要这样的代码:

var a1=(function(){return [1*2,2*2,3*2];})(); <-- note the extra parens
var a2=(function(v){return [1*v,2*v,3*v];})(2);
console.log(a1,a2);

关于javascript - Way 不会将参数传递给匿名函数导致它返回一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231262/

相关文章:

php - 连接到另一个 MySQL 表 OOP PHP

c++ - 使基类设置父类的正确方法

json - 在 JSON 结果中定义函数是否有效?

javascript - 是否可以使用 Javascript 使 .manifest 缓存失效?

javascript - 使用字体观察者加载本地字体 - 我的 promise 所需的每个重量?

javascript - 有人愿意看一下这个自定义滚动条的 JS 代码吗?

javascript - "Decompile"JavaScript函数?

javascript - 如何在 puppeteer 中执行 __doPostBack 函数?

具有字符串和指定长度的 Java 类

r - 如何对 mutate_each (和 summarise_each)使用匿名函数?