jQ鏈式寫法詳解


jQ的鏈式寫法詳解:

  jq的鏈式寫法很好用,直接打【.】就可以了,說起來JQ 是如何實現鏈式寫法的呢?

  很多人都說jq的鏈式寫法就是 return this   那么return this代表了什么呢?

  簡單說return this就是要返回下一個函數的執行父級(原諒我語文不好,找不到一個更好的詞代替父級這倆個字。)

  那么下面寫個例子,來實現一個簡單的鏈式寫法:

 

 1 function a(){
 2     // 執行一些操作。
 3     console.log(111);
 4     return window;
 5 }
 6 function b(){
 7     console.log(22);
 8     //執行一些操作。
 9     return window;
10 }
11 a().b();

  這算實現了鏈式寫法吧? 我返回下一個函數的父級,當a函數執行完后,返回window,這樣下個b函數也可以進行操作,當然這個在項目中不這么寫。

  在寫個項目中可以使用的鏈式寫法:

 1 function a(){
 2     console.log(1);
 3     return this;
 4 }
 5 function b(){
 6     console.log(2);
 7     return this;
 8 }
 9 var obj={
10     a:a,
11     b:b
12 }
13 obj.a().b();

 那么jq是如何實現鏈式寫法的呢?肯定不是這么簡單對吧?

 介紹下jq是如何實現鏈式寫法的。

  在jq中有這么一行代碼定義了

1 jQuery = function (selector, context) {
2     return new jQuery.fn.init(selector, context, rootjQuery);
3 },
jQuery.fn = jQuery.prototype = {}
jQuery.fn.init.prototype = jQuery.fn;

 

 簡單說這幾行代碼實現了JQ的鏈式寫法定義一個函數,return 一個實例,init函數里進行了處理初始化操作,比如選擇器,拼接字符串等等,這里不一一介紹。

 最后再將jq的prototype 賦值給init方法的prototype。

 這樣就實現了鏈式寫法。在工作中也經常會使用到JQ的鏈式寫法,比如說:

  在做移動端項目的時候,通常大家會引入zepto。但是zepto大約27k左右,在移動端已經很大了,那么我們就有必要不去引入zepto。而是我們單獨寫一個常用方法庫。

  並且使用鏈式寫法,操作簡單,而且還是專門應對於我們的項目。所以推薦大家不引入zepto。而是自己去寫個常用方法庫。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM