gpt4 book ai didi

javascript - 以一个括号开头的 IIFE 不起作用

转载 作者:行者123 更新时间:2023-11-27 23:12:40 25 4
gpt4 key购买 nike

我正在研究 javascript 中的 IIFE,据我所知,这只是一种关于如何编写 IIFE 的风格选择,并且下面的两种方法都应该有效。

  var sum = 0
(function test(n){
sum += n
}(1));
console.log(sum);

此日志:Uncaught TypeError: 0 is not a function .

或者,当我以 ! 开始 IIFE 时它有效

var sum = 0
!function test(n){
sum += n
}(2);

console.log(sum) //logs 2

正如你所看到的,当我以 ! 开始 IIFE 时它按预期工作。我现在很困惑,因为我认为这只是你如何实现 IIFE 的风格选择。谁能解释一下吗?

最佳答案

这与您只使用一个括号这一事实无关,而是第一行末尾缺少分号。

不加换行符查看即可发现问题。

var sum = 0(function test(n){
sum += n
}(1));

如果您遵循无分号方法,则需要用分号保护以 [( 开头的换行符。

例如:

var sum = 0
;(function test(n){
sum += n
}(1))

关于javascript - 以一个括号开头的 IIFE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36070927/

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