可能重复:
jQuery 如何保护覆盖 jQuery 和 $
我正在查看 jQuery 源代码,并且有几行代码我没有得到。
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
我的问题是上面的代码在做什么?它是如何工作的?我想它负责 jQuery 和 $ 对象,但我无法理解它。
可能重复:
jQuery 如何保护覆盖 jQuery 和 $
我正在查看 jQuery 源代码,并且有几行代码我没有得到。
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
我的问题是上面的代码在做什么?它是如何工作的?我想它负责 jQuery 和 $ 对象,但我无法理解它。
如果你查看noConflict函数的源代码,你会看到这个
if ( window.$ === jQuery ) {
window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
当 Jquery 加载时,它会覆盖全局$
和jQuery
. noConflict
将这些全局变量从备份中恢复为以前的值。这些备份是使用您提到的代码创建的。
许多使用 javascript 的库使用 $. 它正在重置 $ 以便其他库(如 Prototype)可以使用 $ 而不会导致冲突错误。如果不这样做,代码将无法工作并可能导致错误。