(function($) {
// plugin code
})(window.jQuery);
似乎这个代码效果几乎相同,如:
(function($) {
// plugin code
})(jQuery);
我应该使用window.jQuery
或jQuery
作为函数参数吗?它有意义吗?
相同的Zepto,我看到很多人在他们的插件中使用window.Zepto
,但代码也适用于Zepto
。
答案 0 :(得分:6)
没有区别,window
是客户端JavaScript中的 super 全局对象,全局上下文中定义的所有函数和变量都是{的方法和属性{1}}对象。
答案 1 :(得分:4)
就像$(document).ready(function(){..})
和$(function(){..})
一样。
它用于设置jQuery闭包。目的是允许变量$用作jQuery的快捷方式,而不会与其他库和使用$作为变量名的自定义函数冲突
这种技术经常被jQuery插件作者用来授权他们的插件。检查documentation以获取更多信息。
答案 2 :(得分:2)
window.jQuery
是窗口全局对象中定义的对象。可以跳过window
。跳过时,我们应该是window.jQuery。大多数人不使用window.jQuery而是使用jQuery
或简单$
,并且更容易理解,也会减少源代码大小。
window.jQuery = window.$ = jQuery;
您可以通过here了解更多信息。
答案 3 :(得分:0)
有区别。如果未定义jQuery,!!window.jQuery
将返回false,而如果未定义jQuery,则!!jQuery
将引发错误。