请教关于()的用法
发布于 2天前 作者 ZeeyanLeung 195 次浏览 来自 问答

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

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

6 回复

让内部的匿名函数自执行

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

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

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

两种方式都可以

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');
//})()

回到顶部