整体架构

调用方式:

$(document).find('a').css('color','red')

 近似实现:

window.onload = function(){
            var aQuery = function(){
//              return aQuery.prototype.init();
                return new aQuery.prototype.init()
            }
            aQuery.prototype = {
                init: function(){
                    this.age1 = 18;
                    return this;
                },
                name: function(){
                    return this.age
                },
                age: 20,
                age1: 21
            }
            aQuery.prototype.init.prototype = aQuery.prototype;
            //...执行
//          var a = new aQuery();
            var a = aQuery().age1,
                b = aQuery().name();
            console.log(a, b)
        }

涉及知识点:this调用方式prtotype,return.

可见,此算法基本解决了$()是返回一个对象的难题,在aQuery.prototype对象里面依次添加相关操作方法就可以了。若要链式调用,只需让相关操作方法返回一个this即可。

参考资源:jQuery源码分析系列

posted @ 2017-04-16 14:57  成长感性  阅读(162)  评论(0编辑  收藏  举报