jQuery.noConflict()實現防衝突原理機制簡單介紹
大家知道使用jQuery.noConflict()方法可以實現$和jQuery控制權的讓渡功能,防止和其他同樣使用$或者jQuery庫衝突。
雖然很多朋友對它的使用比較熟練,但是對它的實現原理可能還不夠清楚,下面就簡單做一下介紹。
對於jQuery這樣的外掛想要知道原理沒有其他的辦法,只有看原始碼,就以jquery1.83作為例子做一下介紹。
實現原理:
看一段原始碼的截圖:
這是jQuery比較靠前的程式碼,window.jQuery和window.$如果沒有其他庫定義的話,那麼它們的值就是undefined,如果有其他庫定義的話那麼就是其他庫相應物件的引用。將它們儲存在臨時變數_jQuery和_$中。
再來看一段原始碼截圖:
上面是結尾處的程式碼,將window.jQuery和window.$重置為jQuery,這就是為什麼會導致衝突的原因。再來看一段程式碼截圖:
上面就是noConflict()方法的定義,是不是已經很明確了。
首先判斷window.$ === jQuery是否成立,如果成立說明,當前沒有進行讓渡,那麼執行window.$ = _$,這樣就實現了讓渡。
下面也是同樣的道理,就是講jQuery的控制權也讓渡出去了。最後返回jquery物件。
相關文章
- $.noConflict()方法實現防衝突原理介紹
- 簡單介紹Lombok使用@Tolerate實現衝突相容問題Lombok
- 簡單介紹numpy實現RNN原理實現RNN
- 防抖原理以及簡單實現
- Angular 依賴注入機制實現原理的深入介紹Angular依賴注入
- 談談 jQuery 中的防衝突(noConflict)機制jQuery
- 簡單介紹python的垃圾回收機制Python
- javascript程式碼執行機制簡單介紹JavaScript
- 簡單易懂的 Go 泛型使用和實現原理介紹Go泛型
- 簡單介紹NMS的實現方法
- javascript實現繼承方式簡單介紹JavaScript繼承
- javascript實現鏈式呼叫簡單介紹JavaScript
- javascript實現二維陣列實現簡單介紹JavaScript陣列
- python greenlet背景介紹與實現機制Python
- js事件委託原理簡單介紹JS事件
- Android通過輔助功能實現搶微信紅包原理簡單介紹Android
- 單目測距的基本介紹和實現原理
- 實現微信搖一搖功能簡單介紹
- 使用CORS實現ajax跨域簡單介紹CORS跨域
- Node.js的模組載入方式與機制簡單介紹Node.js
- RPC模式的介紹以及簡單的實現RPC模式
- 簡單介紹SpringMVC RESTFul實現列表功能SpringMVCREST
- 簡單介紹Go 字串比較的實現示例Go字串
- 實現跨域iframe介面方法呼叫 簡單介紹跨域
- javascript模擬實現私有屬性簡單介紹JavaScript
- jquery實現的元素居中外掛簡單介紹jQuery
- javascript如何實現模組程式設計簡單介紹JavaScript程式設計
- 執行緒池的介紹及簡單實現執行緒
- golang實現常用集合原理介紹Golang
- 簡單實現vuex原理Vue
- OpenGL簡單介紹及實踐
- HTML字元實體簡單介紹HTML字元
- jQuery實現的生成隨機密碼程式碼例項簡單介紹jQuery隨機密碼
- 簡單介紹python中的單向連結串列實現Python
- AngularJS實現的表單編輯提交功能簡單介紹AngularJS
- 簡單介紹pytorch中log_softmax的實現PyTorch
- 簡單介紹VBS 批次Ping的專案實現
- jQuery EasyUI datagrid實現本地分頁簡單介紹jQueryUI