首页 > 关于jQuery中$.noConflict() 实现的疑问

关于jQuery中$.noConflict() 实现的疑问

问题描述

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;
        }

疑问:

  1. if ( window.$ === jQuery ) 为什么要经过这次判断,window.$===jQuery不是恒为真么?

  2. 亦或在什么情况下以上判断不为真?


第二次及后面再次被调用的时候.
因为这个方法,并没有规定你只能调用一次, 所以你懂的...

【热门文章】
【热门文章】