JS问题整理与思考--模拟zeptoJs的原型指向

  • 1.将$赋值为函数,并拿到参数。返回zepto.init
  • 2.zepto.init将参数与dom筛选出来,并返回zepto.Z(
  • 3.zepto.Z是Z方法的一个实例
  • 4.Z方法的原型指向$.fn
  • 5.$.fn包含对应的属性方法
var $p = $('p')
$p.css('font-size', '40px')
(function (window) {
    var zepto = {}

    function Z (dom, selector) {
        var i,len = dom ? dom.length : 0
        for (i=0;i < len;i++) {
            this[i] = dom[i]
        }
        this.length = len
        this.selector = selector || ''
    }

    zepto.Z = function(dom, selector) {
        return new Z(dom, selector)
    }


    zepto.init = function (selector) {
        var slice = Array.prototype.slice
        var dom = slice.call(document.querySelectorAll(selector))
        return zepto.Z(dom, selector)
    }
    var $ = function (seletor) {
        return zepto.init(seletor)
    }
    window.$ = $


    $.fn = {
        css: function (key, value) {
            alert('css')
        },
        html:function (key, value) {
            alert('html')
        }
    }
    Z.prototype = $.fn
})(window)

随机浏览