简述jq的实现原理
簡述jq的實現原理
1. 沙箱:
- jq利用自執行函數,將所有的實現細節封裝在自執行函數內,對外僅僅暴露jQuery和$符號:
2. 無new化
- 在jq中我們使用選擇器,是直接使用$(selector)的,但是其實他返回的是一個jq對象,其中掛載了很多jq方法。
當我們傳入一個選擇器時,會返回new jQuery.fn.init(selector, context);而當我們傳入空選擇器時,在init中會顯示返回this,此時this是指帶init,而init的prototype被賦值為jQuery.fn,因此就相當于jQuery的實例。
- jQuery.fn.init.prototype = jQuery.fn = jQuery.prototype
- new jQuery.fn.init() 相當于 new jQuery() ;
3. jq鏈式調用原理
- 每次函數執行完的時候都會返回this,jq對象本身
4. $.extend與$.fn.extend區別
- .extend是擴展一個類對象的方法,通常是用來拓展全局函數,例如.extend是擴展一個類對象的方法,通常是用來拓展全局函數,例如.extend是擴展一個類對象的方法,通常是用來拓展全局函數,例如.ajax,$.jsonParse等方法。
- $.fn.extend是擴展原型鏈里的方法,是給具體的實例對象來調用。
5. $.extend()深淺復制
- 淺復制:簡單的同名數據覆蓋。
- 深復制:比較非簡單類型數據內部的數據,相同覆蓋,不同添加
總結
- 上一篇: C语言算数运算符顺序
- 下一篇: 证明定理的方法归纳