0

可能重复:
jQuery 如何保护覆盖 jQuery 和 $

我正在查看 jQuery 源代码,并且有几行代码我没有得到。

// Map over jQuery in case of overwrite
_jQuery = window.jQuery,

// Map over the $ in case of overwrite
_$ = window.$,

我的问题是上面的代码在做什么?它是如何工作的?我想它负责 jQuery 和 $ 对象,但我无法理解它。

4

3 回答 3

1

如果你查看noConflict函数的源代码,你会看到这个

if ( window.$ === jQuery ) {
    window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
    window.jQuery = _jQuery;
}

当 Jquery 加载时,它会覆盖全局$jQuery. noConflict将这些全局变量从备份中恢复为以前的值。这些备份是使用您提到的代码创建的。

于 2013-01-11T04:56:28.420 回答
0

这在 jQuery 函数的上下文中用于:

1) 防止客户端代码覆盖jQuery和函数的$功能。

jQuery2) 给和起别名$提高速度

于 2013-01-11T04:51:11.760 回答
0

许多使用 javascript 的库使用 $. 它正在重置 $ 以便其他库(如 Prototype)可以使用 $ 而不会导致冲突错误。如果不这样做,代码将无法工作并可能导致错误。

于 2013-01-11T04:51:50.993 回答