以下代码是尝试创建模块化代码块,如果jQuery(依赖项)不存在,则会无声地失败。
(function($, undefined){
if ( $ === undefined ){
// Do some stuff here
return;
}
// Rest of the code
})(jQuery);
但是当我不包含jQuery时,它会抛出以下JS错误,这是我真正想要测试的场景。
Uncaught ReferenceError: jQuery is not defined
我不得不求助于更加丑陋的代码版本。
(function($, undefined){
if ( $ === null ){
// Do some stuff here
return;
}
// Rest of the code
})( (typeof jQuery !== "undefined") ? jQuery : null );
有人知道更好的方法吗?
答案 0 :(得分:4)
如果出于任何原因需要,可以这样做:
(function($, undefined){
if ( $ === undefined ){
alert('not defined');
return;
}
// Rest of the code
})(window.jQuery); //if property on global object not defined, no error is thrown
答案 1 :(得分:2)
有人知道更好的方法吗?
不要将其作为参数传递。关闭仍然有效:
(function(undefined){
if ( typeof jQuery == "undefined" ){
// Do some stuff here
return;
} else {
var $ = jQuery;
}
// Rest of the code
})();