2

这个值是在 jQuery 暴露于全局范围之前设置的:

_jQuery = window.jQuery,

在 IIFE 快结束时,在上述声明之后有

window.jQuery = window.$ = jQuery;

这是来自jQuery 开发源

什么编译器机制允许 jQuery 从未设置的变量中进行赋值。

另外,一般来说 _jQuery 是干什么用的?

4

4 回答 4

3

正如评论所说,_jQuery支持全局范围内已经存在的任何内容(如旧版本的 jQuery)。这可能是为了jQuery.noConflict功能。

于 2012-08-31T15:57:52.587 回答
1

这是 jQuery 促进其 noConflict 功能的一种方式。它正在存储先前设置的任何内容的副本,window.jQuery以便以后可以在必要时恢复它。

于 2012-08-31T15:57:25.350 回答
1

那部分代码是为使用该$.noConflict()方法做准备。window.jQuery要么是一个现有的 jQuery 库,在包含被初始化的库之前就已经存在,要么就是undefined. 这两种情况都不应该引起问题。

于 2012-08-31T15:57:43.757 回答
1

答案在代码中:

// Map over jQuery in case of overwrite

window.jQuery 和 window.$ 的先前值是为 noConflict 功能保存的。

于 2012-08-31T15:58:00.060 回答