gpt4 book ai didi

javascript - 为什么两个函数定义的结果用逗号连接?

转载 作者:可可西里 更新时间:2023-11-01 02:33:44 25 4
gpt4 key购买 nike

为什么下面的代码会提示2

var f = (function x(){ return 1; }, function y(){ return 2; })();
alert(f);

我看到的是 y 函数以某种方式被执行,而 x 函数被忽略。 (我已经确保我在两个函数中都放入了 alert,并且只有 y 中的 alert 被调用,这让我相信 x 函数根本没有被调用)

如果我删除 y 函数,它会提醒 1

这是怎么回事?

最佳答案

好吧,让我们分解一下。

(function x(){ return 1; }, function y(){ return 2; })

是两个函数字面量。接下来是comma operator用来。它计算表达式(两个函数)并返回最后一个。这个表达式的结果是:function y(){ return 2; }

这意味着剩下的表达式是:var f = (function y(){ return 2; })();

接下来我们要做的是调用它(使用 ()),它将 2 返回到变量 f;

关于javascript - 为什么两个函数定义的结果用逗号连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821940/

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