javascript - (function(window){}) 和 (function(){}) 之间的区别

标签 javascript

<分区>

以下两个代码片段有什么区别?我已经看到两者都用于模块模式、闭包和更高级别的函数声明。两者的正确用途是什么?

(function(){


})();



(function(window){


})(window);

最佳答案

在这种情况下语义差异很小。但是,如果在整个代码中大量使用 window,将其别名为局部变量可以实现更好的缩小。

(function (window) { window['foo'] = window['baz']; })(window);

可以缩小到

(function(w){w['foo']=w['baz']})(window)

如果没有本地别名,window 将无法缩小,而是缩小

(function(){window['foo']=window['baz']})()

还有其他原因以及类似技巧的其他用例。看看this问题以找到更深入的解释。

关于javascript - (function(window){}) 和 (function(){}) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27854671/

相关文章:

javascript - jQuery 使用replaceText 和变量替换文本

javascript - 如何使用YUI在select标签中制作真正的鼠标点击事件?

javascript - 添加事件监听器之前是否需要声明目标变量?

javascript - (Vanilla JS) 使用已知索引值触发表格单元格的点击

javascript - 如何永久设置高亮持续时间

javascript - 在 webGL 中绘制参数形状(不使用 Three.js)

javascript - fullcalendar v4 modif ajax 问题 + event.setDates 语法错误

javascript - 更改 HighCharts 图表中悬停系列及其点属性的替代方法

javascript - 在 JQuery Mobile 上刷新

javascript - 如何在没有任何键的情况下读取 php 中的 JSON 数组?