Javascript 将jQuery作为参数传递
如果JQuery确实存在于作用域中,那么它们的行为是否会相同 $用于将作用域限制在每个函数内部,我想,我不知道为什么。第二个代码段是原始代码,我试图在调用jquery之前添加一个检查,就像在第一个代码段中一样 第一:Javascript 将jQuery作为参数传递,javascript,jquery,Javascript,Jquery,如果JQuery确实存在于作用域中,那么它们的行为是否会相同 $用于将作用域限制在每个函数内部,我想,我不知道为什么。第二个代码段是原始代码,我试图在调用jquery之前添加一个检查,就像在第一个代码段中一样 第一: (function () { if (!window.jQuery) { alert('Error: JQuery not loaded.'); return; }
(function () {
if (!window.jQuery) {
alert('Error: JQuery not loaded.');
return;
}
main(jQuery);
})();
function main($, undefined) {
alert("main 1");
//do some work on $
}
第二:
(function ($) {
if (!$) {
alert('Error: JQuery not loaded.');
return;
}
alert("main 2");
//do some work on $
})(jQuery);
第三(也许这稍微好一点?):
这对我来说是最好的解决办法
(function () {
if (!window.jQuery) {
alert('Error: JQuery not loaded.');
return;
}
var main = function ($, undefined) {
alert("main 3");
//do some work on $
}
main(jQuery);
})();
是的,但是在第一段代码中,函数
main
似乎在全局范围内,这意味着可以通过window.main()
调用它,这意味着如果有任何库具有名为main
的全局变量,它将被覆盖。除了@Varinder注释中列出的问题,虽然我选择使用第二个代码段,但它们都可以工作。这个main
函数似乎基本上没有必要#2很好,不过您可能希望传递window.jQuery
以避免获取引用错误。
(function () {
if (!window.jQuery) {
alert('Error: JQuery not loaded.');
return;
}
var main = function ($, undefined) {
alert("main 3");
//do some work on $
}
main(jQuery);
})();