模拟jquery底层链式编程

//特点1:快级作用域,程序启动自动执行

//内部的成员变量,外部无法访问(除了var)

//简单的函数链式调用
function Dog(){
this.run=function(){
alert("跑");
return this;
};
this.eat=function(){
alert("吃");
return this;
};
this.sleep=function(){
alert("睡");
return this;
}
};
var p1=new Dog();
p1.run().eat().sleep();

(function(window,undefined){
            //$最常用的对象返回给外界,大型程序开发,一般使用'__'作为私有对象(规范)
            function _$(arguments){
                //实现代码
                        
            };
            //在function上扩展一个可以实现链式编程的方法
            Function.prototype.method=function(metName,fn){
                this.prototype[metName]=fn;
                return this; //链式编程关键
            }
            //在_$原型对象上加一些公共方法
            _$.prototype={
                const:_$,
                addEvent:function(){
                    alert(11);    
                    return this; //链式编程关键
                },
                setStyle:function(){
                    alert(22);    
                    return this; //链式编程关键
                }
            }
            //window上先注册一个全局变量,与外界产生关系
            window.$=_$;

            //写一个准备方法
            _$.onReady=function(fn){
                //1.实例化出来_$对象,真正注册到window上
                window.$=function(){
                    return new _$(arguments);
                }
                //2.执行传进入的代码
                fn();
                //3.实现链式编程
                _$.method('addEvent',function(){}).method('setStyle',function(){});
            }

        })(window); //程序的入口

    /*    $(function(){
            //jquery代码
        })*/
        $.onReady(function(){
            $("dd").addEvent().setStyle();
        })
  

 

posted @ 2016-07-28 11:25  八bug哥哥  阅读(270)  评论(0编辑  收藏  举报