我在很多脚本中都看到了这种模式
(function(){})();
它是什么以及为什么要使用它?
最佳答案
它用于强制创建局部作用域,避免声明污染当前(通常是全局)作用域。
如果你想避免匿名函数,可以这样重写:
var scope = function() { /*...*/ };
scope();
但是匿名函数语法的优点是父作用域或全局作用域甚至不会被函数名称污染。
(function() { /*...*/ })();
这也是在 javascript 中实现信息隐藏的好方法,因为此范围内的声明(函数和变量)从外部是不可见的。但它们仍然可以看到彼此,并且作为 javascript 实现在此类范围内声明的闭包函数将可以访问同一范围内的其他声明。
关于Javascript请解释这段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5459829/