标签 jquery 下的文章

jQuery源码分析(四): get(n)与eq(n)


起步

构造器之后,就是定义一些函数的了:

jQuery.fn = jQuery.prototype = {
    jquery: version,
    constructor: jQuery,
    selector: "",
    length: 0,
    toArray: function() {},
    get: function( num ) {},
    pushStack: function( elems ) {},
    eq: function( i ) {},
    push: push,
    sort: arr.sort,
    splice: arr.splice
}

看到geteq不经想起那时候用jq的时候特地去找了他们的区别。


jQuery源码分析(三):构造器


起步

这篇是对上一篇的一个补充,静态与实例方法共享设计的在上一篇也提过了:

$(".xx").each()    //作为实例方法存在
$.each()           //作为静态方法存在

源码中:

jQuery.fn = jQuery.prototype = {
    each: function( callback, args ) {
        return jQuery.each( this, callback, args );
    }
};

实例方法取于静态方法,这就是静态与实例方法共享设计。所以jQuery通过2个构造器划分2种不同的调用方式一种是静态,一种是原型。


jQuery源码分析(二):无new构建原理


起步

jQuery里面,你既可以用$.isArray()调用jq的静态方法,也可以通过$().css()获取对象执行对象方法。

在js中,要实现一个变量既能被new,又能调用它的方法,其实不难实现:

var a = function () {};
a.func = function () {alert("静态方法");};
a.prototype.t = function () {alert("对象方法");};

var t = new a();
t.t();
a.func();