问题描述
jQuery中为了防止冲突(比如多个库都使用$符号作为函数或者变量名),我们可以使用 jQuery.noConflict 方法来实现$和jQuery控制权的移交。
内部实现如下
开头首先做的一件事是缓存window下的$和jQuery变量
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
然后在noConflict中
noConflict: function( deep ) {
if ( window.$ === jQuery ) {//为什么要经过这次判断,window.$===jQuery不是恒为真么
window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
return jQuery;
}
疑问:
if ( window.$ === jQuery ) 为什么要经过这次判断,window.$===jQuery不是恒为真么?
亦或在什么情况下以上判断不为真?
第二次及后面再次被调用的时候.
因为这个方法,并没有规定你只能调用一次, 所以你懂的...