jQuery扩展原理

自己附了两个例子,把它记录下来。

//1、扩展本身方式
    function fun(){}//定义一个类(函数)

    //为该类(函数)添加一个静态方法extend,(静态方法这样定义,相当于一个新的函数【直接调用一个函数是不用new的】)
    fun.extend=function(obj){
        for(var a in obj)
            this[a] = obj[a];//注意:这里的tihs即fun
    }
//2、扩展对象 (这样相当于原型上加了一个方法,也就相当于一个class中的一个method,所以要new)
    fun.prototype.extend = function(obj){
        for(var a in obj)
        this[a] = obj[a];//注意:这里的this即是fun.prototype
    }
   
    jQuery(function(){
    //扩展本身测试
        fun.extend({name:"fun",method1:function(){}});
        alert(fun.name);
    //扩展对象测试
        fun.prototype.extend({name:"fun2",method1:function(){}})
        alert(new fun().name);

        //例子演示: 这样写个例子相信大家理解的就会更明白!
        //为date添加静态方法
        Date.testDate = function(){
            alert('测试Date');
        }
        Date.testDate();
        //为date本身添加方法
        Date.prototype.test = function(){
            alert('Test Date self');
        }
       
        new Date().test();
    });

相关推荐