关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

35行的山寨版jQuery

发布时间:2022-07-27 12:39:17
jQuery对象本质上是一种类数组对象
var $$ = function (nodeList) {

    return new $$.fn.init(nodeList);
};

$$.fn = $$.prototype = {

    toString: function () {
        return this.slice();
    },
    constructor: $$,
    init: function ( arr ) {    // 创建类数组对象
        for (var i = 0, l = arr.length; i<l; i++) {
            this[i] = arr[i];
        }

        this.length = arr.length;
    },
    each: function (fn) {
        for(var i = 0, l = this.length; i<l; i++){
            fn.call(this[i], i);
        }
    },
    eq: function (i) {
        return i === -1 ? this.slice(i) : this.slice(i, i + 1);
    },
    slice: function (a, b) {
        start = a || 0;
        end = b || self.length;
        return Array.prototype.slice.apply( this, [start, end] );
    }
    
    // ... ...
};

$$.fn.init.prototype = $$.fn;
使用示例:35行的山寨版jQuery
var para = $$( document.getElementsByTagName('p') );

para.each(function(){

    this.className += " " + 'goodbye'; 

});

 


/template/Home/DawnNew/PC/Static

立即注册风纳云账号,免费体验多款产品

立即注册