【发布时间】:2013-08-12 11:06:26
【问题描述】:
我在 JavaScript/jQuery 插件开发中看到了一种熟悉的模式(Modernizr 使用了第一个示例),通过这种模式,函数很好地包装在 IIFE 中,并在 window 对象上全局定义.我要问的是,通过执行以下操作使您的插件/脚本在全球范围内可访问是否是个好主意:
window.myPluginName = (function (window, document, undefined) {
// Plugin logic
})(window, document);
我问这个是因为一些脚本/插件需要在它们被调用的 DOM 中访问,或者在文档/文件中的其他地方访问。在插件中我有时也会看到:
(function (window, document, undefined) {
window.myPluginName = function () {
// Plugin logic
}
})(window, document);
甚至这个:
(function (window, document, undefined) {
var myPluginName = function () {
// Plugin logic
}
window.myPluginName = myPluginName;
})(window, document);
我对设置背后的差异非常感兴趣,如果有人比我更有经验,我会很乐意提供一些建议,说明哪种设置最适合用于开发。谢谢!
【问题讨论】:
-
这个问题是一个很好的、简洁的解决方案总结。
标签: javascript window