我找到了这两个代码,如果存在则不理解它们之间的区别。
您能否解释一下防止全球范围污染的代码之间的区别。
首先:
(function() {
var x = 1;
// thousand of lines here
}(window));
第二
(function() {
var x = 1;
// thousand of lines here
})(window);
问题可能是微不足道的,但我不明白正在做什么();
- 你能解释一下吗?
答案 0 :(得分:4)
当JavaScript解析器在行的开头读取function
标记时,它假定它是一个函数声明,即
function hello() {
return "world";
}
如果之后没有看到名称,则表示语法错误。括号使上下文成为表达式而不是语句/声明,这意味着需要函数文字。
有趣的事实:当然,您不需要括号来强制表达式上下文。一元运算符也会起作用,例如
!function() {
var x = 1;
}();
哦,你走了,改变了问题。新的答案是:它们完全相同,有点像5 + (4 * 3)
与(5 + 4 * 3)
,除非更不重要,因为它们或多或少具有相同的可读性。