之间有任何区别
var myfunc = (function () { return function () { ... } }());
and
var myfunc = function () { return function () { ... } }();
这只是风格问题还是第一种形式中的 () 周围还有更多内容?
没有。或者至少在你的例子中不是。
仅当 function 关键字是语句中的第一个标记时,外括号才重要。
// cool
var foo = function(){}();
var foo = (function(){}());
// also cool
(function(){}());
// not cool, syntax error
// parsed as function statement, expects function name which is missing
function(){}();
// also not cool, syntax error
// declares a function, but can't be executed immediately
function foo(){}();
When function
是语句中的第一个标记,它是一个函数声明(认为named函数),其行为与function
在所有其他情况下。该前导括号强制解析将其视为函数表达式(认为匿名的function) 相反,它允许立即执行。
See: JavaScript 中的函数表达式与声明有什么区别?
如果您以其他内容(例如变量声明)开始行或语句,那么从技术上讲,这根本不重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)