jQuery源碼筆記——四

來源:互聯網
上載者:User

標籤:style   blog   io   color   ar   sp   for   div   on   

each()實現
var jQuery = function( selector, context ) {        return new jQuery.fn.init( selector, context );};jQuery.fn = jQuery.prototype = {    selector: "",    init: function(selector){        //仍然是mini的選取器。        var result = document.querySelectorAll(selector);        for(var i = 0;i < result.length;i++){            this[i] = result[i]         }        this.length = result.length;    },    //指定操作對象為this    each: function(callback){        return jQuery.each(this,callback)    },    constructor : jQuery}jQuery.fn.init.prototype = jQuery.fn//對任意對象進行迭代操作jQuery.each = function(obj,callback){    for(var i = 0;i<obj.length;i++){        //運用call調整this的指向        //回呼函數裡的this指向操作的對象        //方便操作        callback.call(obj[i],i,obj[i]);    }    //鏈式調用    return obj}//測試jQuery("div").each(function(index, element) {    console.log(this)});//jQ內部也經常用迭代運算元組或其它。jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {    console.log(name.toLowerCase())});

jQuery.each是jQuery的工具,迭代操作對象合集裡的對象,所以不用繼承在原型中,而jQuery.fn.each就是jQuery.each的一個特例。

each是一個典型的迭代運用,如我們想對一個合集的對象都執行的某功能,callback,通過each遍曆對象或者數組就可以實現不停變化callback的操作對象。

原理很簡單就是將元素遍曆依次傳給回呼函數,原代碼中還考慮了一些情況,但沒什麼新知識,我就不補充了。

回呼函數

作為參數的函數就叫回呼函數。當一個函數接收一個函數

jQuery源碼筆記——四

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.