Javascript请解释这段代码

标签 javascript

我在很多脚本中都看到了这种模式

(function(){})();

它是什么以及为什么要使用它?

最佳答案

它用于强制创建局部作用域,避免声明污染当前(通常是全局)作用域。

如果你想避免匿名函数,可以这样重写:

var scope = function() { /*...*/ };
scope();

但是匿名函数语法的优点是父作用域或全局作用域甚至不会被函数名称污染。

(function() { /*...*/ })();

这也是在 javascript 中实现信息隐藏的好方法,因为此范围内的声明(函数和变量)从外部是不可见的。但它们仍然可以看到彼此,并且作为 javascript 实现在此类范围内声明的闭包函数将可以访问同一范围内的其他声明。

关于Javascript请解释这段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5459829/

相关文章:

javascript - 即使在使用 $(document).ready(function() {}) 之后,jquery click 函数也无法正常工作;甚至在使用 $(function) block 之后

javascript - Ember-Data 中的模型/存储问题

javascript - 如何在 Phonegap 3.0 的 InnApp 浏览器中获取当前 url

javascript - 递归对象消息

javascript - 结束 2 结束测试是否足够?

javascript - 带复选框的 Jquery 条件

javascript - 在 Angularjs 中,每次单击“加载更多”按钮都会从 API 获取 10 个数据

javascript - Chrome 扩展消息传递无响应-告别 : undefined

javascript - Node.js Http.Request 回调 - 无法将数据传递给父函数

javascript - 铯.js : prevent interpolation