JavaScript实用方法之extend

extend方法顾名思义,就是用来扩展对象属性的,jQuery的工具函数中也有extend方法(传送门:http://julying.com/jQuery-1.6-api/#p=jQuery.extend)。我认为extend方法的最大用处不是扩展普通对象,而是扩展原型对象,实现多重继承。如果自己写前端库的话,用extend组织代码,可以写出有漂亮组织结构的优雅代码。

下面是extend方法的简单实现,将extend作为object的静态方法

    /*
     * 用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
     * 静态方法定义在哪个对象底下都没所谓
     * 如果参数为空,则返回 null;
     * 如果只有一个参数,则直接返回该参数;
     * 否则:把第二个参数到最后一个参数的成员拷贝到第一个参数对应中去,并返回第一个参数。
     */
    Object.extend = function()
    {
        var len = arguments.length;
        if(len == 0)
        {
            return null;
        }
        var This = arguments[0];
        if(len == 1)
        {
            return This;
        }
        for(var i=1; i<len; i++)
        {
                var obj = arguments[i];

                for(var name in obj)
                {
                    This[name] = obj[name];
                }
        }
        return This;
    };