我正在研究闭包和全局范围,并且对于何时使用}())与})()感到困惑。似乎我很幸运,我使用哪一个并不重要。
(function() {
var myFunction = (function() {
var i=100;
return function() {
return i++;
}
}());
var X = myFunction();
console.log(X);
X = myFunction();
console.log(X);
})();
答案 0 :(得分:2)
表达式在JS中的作用。
以下所有工作都是因为+
,-
,(
,~
...指定了表达式的开头。
!function(){}()
~function(){}()
+function(){}()
-function(){}()
(function(){})()
(function(){}())
答案 1 :(得分:1)
(function () { return 1; });
不评估该功能。 ("append" + " us")
会评估字符串。
所以是的,在这种情况下它并不重要,因为:
var myFunction = (function() {
var i=100;
return function() {
return i++;
}
}());
评估为(function() { return i++; }
,它只返回匿名函数。
和
var myFunction = (function() {
var i=100;
return function() {
return i++;
}
})();
在大括号后评估myFunction。并且..只返回匿名函数。窝。