我有一个像文件说test.js:
(function($){
$.test= function(){
alert('test');
}
})(jQuery);
jQuery.test();
Run Code Online (Sandbox Code Playgroud)
现在,如果test.js在我的页面中加载两次,即src = test.js在两个不同的位置,它会发出两次警报.我希望它像一个单身人士.关于如何实现这一点的任何想法?
使用条件快捷方式:
(function($){
!$.test && $.test= function(){
alert('test');
}
})(jQuery);
jQuery.test();
Run Code Online (Sandbox Code Playgroud)
!$.test评估trueif $.test是否未定义,以及&&执行后右侧的代码.否则,它将跳过该部分.另一种有用的模式可能如下:
$.test = $.test || function() {
alert('test');
}
Run Code Online (Sandbox Code Playgroud)
这实际上做了同样的事情.如果$.test已经定义了它的使用,否则分配匿名函数$.test.两个版本都可以(也可能应该)进行优化,但不仅要检查它们是否已定义,还要检查它们是否来自类型function.