美文网首页
函数重载

函数重载

作者: yinxmm | 来源:发表于2018-12-24 13:08 被阅读0次
function addMethod(object, name, f)
{  
    var old = object[name];  
    object[name] = function()
    {
        // f.length为函数定义时的参数个数
        // arguments.length为函数调用时的参数个数    
        if (f.length === arguments.length)
        {  
            return f.apply(this, arguments);    
        }
        else if (typeof old === "function")
        {
            return old.apply(this, arguments);    
        }  
    };
}


// 不传参数时,返回所有name
function find0()
{  
    return this.names;
}


// 传一个参数时,返回firstName匹配的name
function find1(firstName)
{  
    var result = [];  
    for (var i = 0; i < this.names.length; i++)
    {    
        if (this.names[i].indexOf(firstName) === 0)
        {      
            result.push(this.names[i]);    
        }  
    }  
    return result;
}


// 传两个参数时,返回firstName和lastName都匹配的name
function find2(firstName, lastName)
{ 
    var result = [];  
    for (var i = 0; i < this.names.length; i++)
    {    
        if (this.names[i] === (firstName + " " + lastName))
        {      
            result.push(this.names[i]);    
        }  
    }  
    return result;
}


var people = {  
    names: ["Dean Edwards", "Alex Russell", "Dean Tom"]
};


addMethod(people, "find", find0);
addMethod(people, "find", find1);
addMethod(people, "find", find2);


console.log(people.find()); // 输出["Dean Edwards", "Alex Russell", "Dean Tom"]
console.log(people.find("Dean")); // 输出["Dean Edwards", "Dean Tom"]
console.log(people.find("Dean", "Edwards")); // 输出["Dean Edwards"]

相关文章

  • Cocos2dx之C++基础(四)

    函数重载函数不以返回值来区分重载函数函数不以参数名来区分重载函数使用重载函数的时候不要引起二义性结构函数也可以重载...

  • [进阶]C++:函数重载

    定义重载函数 重载函数是函数名相同但是参数列表不同的函数 重载和const形参 const_cast 在重载函数中...

  • 第八章 函数探幽(4)函数重载

    (四)函数重载 (1)函数重载的含义是可以有多个重名的函数,因此需要对函数进行重载。可以通过函数重载来设计一系列同...

  • Vue3源码中的TypeScript重载函数的作用

    TypeScript重载函数的作用案例 C++中的一个概念(百度百科): 函数重载一般指重载函数。 重载函数是函数...

  • C++之函数重载(下)

    重载与指针 函数重载遇上函数指针将重载函数名赋值给函数指针时根据重载规则挑选与函数指针参数列表一致的侯选者严格匹配...

  • 2.C++对C的扩展

    重载(overload) C++中,引用了函数重载的概念,函数名同名,参数列表不同形成重载。重载规则: 函数名相同...

  • operator-()

    负号重载成员函数友元函数负号重载函数三种方式都可

  • C++ - 函数重载

    函数重载:一个或者多个函数,名字相同,然而参数个数或者参数类型不相同,这叫做函数的重载。 举例: 函数重载使得函数...

  • Callback / Callable 类型

    重载函数,和php的伪重载函数 重载函数a. c++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的...

  • C++中函数调用操作符的重载

    函数调用操作符的重载 函数调用操作符(())只能通过类的成员函数重载可以定义不同参数的多个重载函数 用法: 函数调...

网友评论

      本文标题:函数重载

      本文链接:https://www.haomeiwen.com/subject/vtiakqtx.html