4
(function($) {
// plugin code
})(window.jQuery);

似乎这段代码的效果几乎相同,为:

(function($) {
// plugin code
})(jQuery);

我应该使用window.jQuery还是jQuery函数参数?是否有意义?

Zepto 也一样,我看到很多人window.Zepto在他们的插件中使用,但代码也适用于Zepto.

4

4 回答 4

6

没有区别,window就是客户端 JavaScript 中的超级全局对象,所有在全局上下文中定义的函数和变量都是window对象的方法和属性。

于 2013-04-06T08:26:53.827 回答
4

就像$(document).ready(function(){..})and一样$(function(){..})

它用于设置 jQuery 闭包。目的是允许变量 $ 用作 jQuery 的快捷方式,而不会与也使用 $ 作为变量名的其他库和自定义函数冲突

jQuery 插件作者经常使用这种技术来授权他们的插件。检查文档以获取更多信息。

于 2013-04-06T08:28:07.323 回答
2

window.jQuery是在窗口全局对象中定义的对象。window可以跳过。当跳过它应该是我们window.jQuery。大多数人不使用window.jQuery,而是使用jQuery或简单地使用$并且更容易理解也减少了源代码大小。

window.jQuery = window.$ = jQuery;

你可以在这里阅读更多。

于 2013-04-06T08:25:20.917 回答
1

它们是有区别的。!!window.jQuery如果未定义 jQuery,将返回 false,如果未定义 jQuery,!!jQuery将抛出错误。

于 2016-04-14T13:30:53.007 回答