(function test(){
console.log(123)
}())
(function test(){
console.log(123)
})()
以上两段代码有什么区别呢?好像都能运行?
(function test(){
console.log(123)
}())
(function test(){
console.log(123)
})()
以上两段代码有什么区别呢?好像都能运行?
没区别。加括号或其它是为了将函数声明转化为函数表达式,因为函数声明后面不能加括号,函数表达式可以跟括号。
// 函数声明
function foo() {}() // 出错
所以无论加括号或其它都是一样的。
准确的说上面的两个是立即调用函数,立即调用函数和自执行函数的区别你可以查阅《深入理解javascript》的第4章立即调用的表达式。上面的两个立即调用函数作用没有区别,不过大多数推荐使用第一种,说是作为一个整体更符合语义。
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答884 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
没有区别。
不光如此,还可以这么写:
