jQuery之noConflict方法

源碼如下:

  var

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

    // Map over the $ in case of overwrite
    jQuery.noConflict = function( deep ) {
        if ( window.$ === jQuery ) {
            window.$ = _$;
        }

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

        return jQuery;
    };

// Expose jQuery and $ identifiers, even in AMD
// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
// and CommonJS for browser emulators (#13566)
    if ( !noGlobal ) {
        window.jQuery = window.$ = jQuery;
    }

第一種情況:

    <script src="./jquery3.2.1.js"></script>
    <script>
        var $ = 111;
        $(function(){
            console.log('11111111')
        }) 
    </script>

當(dāng)給$賦值111時(shí),會(huì)引起變量名沖突,$名字被別人占用,代碼無(wú)法執(zhí)行。

   <script>
        var jq = $.noConflict()
        var $ = 111;
        jq(function(){
            console..log('11111111')
        }) 
    </script>

這時(shí)noConflict()方法派上了用場(chǎng),給jQuery取了別名jq,$讓給別人,解決變量名沖突。

第二種情況:

    <script>
        var $ = 11111;
    </script>
    <script src="./jquery3.2.1.js"></script>
    <script>
        var jq = $.noConflict()
        jq(function(){
            console.log($) // 1111
        }) 
    </script>

看源碼知道在加載jquery時(shí),已經(jīng)把沖突的變量名的值存到_jQuery或者_(dá)$; 加載jquery后 ,$又變成jQuery ,用noConflict方法解決變量名沖突后,jquery放棄使用$或者jQuery的名字,把_jQuery 或者_(dá)$的值重新賦給$或者jQuery,jquery使用jq別名。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 請(qǐng)記得在進(jìn)行JQuery類庫(kù)的運(yùn)用時(shí),加入JQuery類庫(kù),并且要保證先寫文檔就緒函數(shù) $(document).r...
    Sunshinemm閱讀 3,029評(píng)論 1 40
  • 1.幾種基本數(shù)據(jù)類型?復(fù)雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined、Nul...
    極樂(lè)君閱讀 5,878評(píng)論 0 106
  • 前幾天夜里,我跟胖子還有他的夫人在華科大深處的一棵樹(shù)下,挖了一個(gè)漂亮的方形坑,埋下了他們剛剛逝去的狗。 我們也不是...
    白眼妮妮閱讀 692評(píng)論 0 49
  • 1. 小時(shí)候,我住在一個(gè)大的四合院里。那會(huì)大院的對(duì)門住著一位張大爺,60好幾的年紀(jì),早已退休閑賦在家多年,最喜歡在...
    卜默閱讀 1,308評(píng)論 5 14
  • 很久很久以前,陽(yáng)光還很刺眼的很多個(gè)下午,厚重的藍(lán)色窗簾擋住了明亮,光從狹小的縫隙里鉆進(jìn)來(lái),投射到我的課桌上,張張?jiān)?..
    Hebetow閱讀 450評(píng)論 0 1

友情鏈接更多精彩內(nèi)容