javascript - 编写这样的 jquery onload 函数有什么好处吗?

标签 javascript jquery

这是我的一位同事在编写 JavaScript 时使用的一段代码。从“与其他库不冲突”的 Angular 来看,这样做有什么好处吗?

jQuery((function($) {
    return function () {

        // code here

    };
}(jQuery)));

最佳答案

这实际上是 self-executing anonymous function pattern 的组合

(function(window, document, $, undefined){
  ...
}(window, document, jQuery));

以及 document.ready 的 jQuery 简写:

jQuery(function($){
 ...
});

要获得您可以做到的所有优势:

jQuery(
  (function(window, document, $, undefined) {
     ...
  }(window, document, jQuery);
));

这样做的好处是:

  • 匿名函数建立的闭包中变量的隐私性
  • 通过在闭包中将全局变量用作局部变量来获得较小的性能提升
  • 确保typeof(undefined) === 'undefined'
  • $ 独立于其他脚本篡改
  • 仅在 domready 触发时运行此闭包
  • 允许使用缩短的变量名称引用全局变量,从而使代码压缩工具受益。想想 window > w

关于javascript - 编写这样的 jquery onload 函数有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21790195/

相关文章:

javascript - 在 THREE.js 中在 Canvas 来源的纹理上进行透明绘图

javascript 不更新 p 标签的数据

javascript - jQuery 中的多个replaceWith?

javascript - 将 apple-tab-space 转换为

javascript - httpChannel.redirectTo() 无限加载

jquery - bootstrap 3 中的 Accordion 菜单

javascript - 具有 "graphical wrong"空间的数组

jquery - 使用 jQuery .trigger() 将 keydown 发送到 Angular 指令

javascript - 多次调用 sagaMiddleware.run 是否安全?

javascript - iframe 父文档元素