jquery原始碼 noConflict實現

2022-01-16 10:46:44 字數 704 閱讀 5955

實現方式很簡單:在初始化的時候,記錄當前全域性中jquery和$兩個變數的的值,用_jquery和_$分別存放,呼叫noconflict方法時,使用_jquery和_$分別恢復對應的值,並且返回jquery物件。

// 初始化jquery物件時,呼叫邏輯如下:

// 1. 記錄全域性中的jquery和$變數(此時這兩個變數指向生成jquery物件之前的全域性中的變數)

var//

map over jquery in case of overwrite

_jquery =window.jquery,

//map over the $ in case of overwrite

_$ =window.$;

// 2. 初始化jquery上的noconflict方法,deep可以傳入乙個boolean值,如果傳入deep

jquery.noconflict = function

(deep)

// 如果deep為true,並且jquery指向jquery,釋放全域性jquery變數

if (deep && window.jquery ===jquery)

// 返回jquery物件

return

jquery;

};// 將jquery暴露到全域性(noglobal在初始化時傳入)

if (!noglobal)

jQuery原始碼分析

工具 版本說明 版本號備註 jquery 2.1.1 sublime 3jquery function selector,context jquery.fn jquery.prototype 快速匹配正則 不加g 不光匹配整體項還會匹配到子項 rquickexpr s w w w init jque...

jquery原始碼解析

jquery 原始碼解析,參看 是jquery 3.0版本 入口jquery.js包含core.js,以及jquery的各類功能的組合,包括selector,ajax等等 然後將jquery物件匯出到全域性的jquery符號,以及 符號 確定jquery物件是個函式,這個函式生成出來的資料是物件 建...

jQuery原始碼分析

一 jquery如何做到不汙染變數名並暴露出 供使用者使用 jquery將變數和 寫進立即執行函式,通過函式來包裹所有的變數和方法,再在這個立即執行函式上將 jquery方法繫結到window上,就可以讓使用者使用到jq方法了。二 jquery是如何做到 jquery 的?function wind...