请教关于()的用法
发布于 10 年前 作者 ZeeyanLeung 4434 次浏览 最后一次编辑是 8 年前 来自 问答

var foo = function () {
var local = “局部变量”;
(function () {
console.log(local); }()); };

请问第3,4行的括号有什么用处啦?

8 回复

让内部的匿名函数自执行

应该是 (function () {})() 而不是 (function () {}())

(function () {})() 匿名自执行函数,由于(function(){})是表达式,js会去对它求解得到返回值,由于返回值是一个函数,故遇到();时会被执行.

@SweetHeartXi 谢谢,明白了

不过这段代码写法木有必要

两种方式都可以

1,(function(){})()
2,(function(){}())

不可以的:

function() {}()

可以的:

var func = function() {}()

最开始的两种写法把函数生声明化为了函数表达式->函数声明是不可以用()自调用的,因为()会被忽略

//Throw error
//function() {
//      console.log('invoked');
//}()

//invoked
//var func = function() {
//      console.log('invoked');
//}()

//invoked
//(function() {
//      console.log('invoked');
//}())

//invoked
//(function() {
//      console.log('invoked');
//})()

@dayuoba 这个问题我以前也研究过,结论一样。但是你这次给出学名了~~

优先运算。2楼误导人家。这样写也不可以的,不了解不要轻言。

回到顶部