这是我的一位同事在编写 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/