javascript - 将脚本添加到窗口对象的最佳方法?

标签 javascript window

我在 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);

我对这些设置背后的差异非常感兴趣,如果有人比我更有经验,可以提供一些关于最适合开发的建议。谢谢!

最佳答案

简短答案:使用对您来说最有意义的答案。

更长的答案:唯一的区别是赋值发生在何处,但在功能方面它们都是等价的。他们中没有一个比另一个有任何优势或劣势。

注意:就目前而言,最后两个不起作用,因为 window 在函数内部未定义。但我假设您实际上会将 window 对象作为参数传递给 IIFE。

关于javascript - 将脚本添加到窗口对象的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18185411/

相关文章:

javascript - 包含动态输入字段数的动态行数vue

Qt - move 无框窗口(重绘缓慢?)

ios - 窗口 objective-c 上的永久 View

javascript - 聚焦 Javascript OpenWindow 文本

javascript - 停止表单提交并保留表单值

javascript - Cypress:子命令主题似乎不是一个元素

javascript - 想了解 JavaScript 的基础层(不是基础)架构

javascript - KnockoutJS - 主视图中的多个局部 View ?

asp.net-mvc - 剑道窗口中带有表单的 PartialView

java - 如何仅打开一次 JavaFX 窗口