您的位置:首页 > Web前端 > JavaScript

js忍者秘籍整理——函数重载

2017-03-30 15:36 393 查看
三种方法:

1、根据传入参数的类型不同执行不同操作

2、通过某些特定参数是否存在进行判断

3、通过传入参数的个数进行判断

书中主要描述了第三种方法,即:通过传入参数的个数进行判断

1)通过if-else或者switch 会冗长且不整洁

2)如果按照如下思路,添加想要的重载方法,漂亮且整洁:

var ninjia = {};
addMethod(ninjia,'whatever',function(){/*do sth.*/});
addMethod(ninjia,'whatever',function(a){/*do sth. else*/})
addMethod(ninjia,'whatever',function(a,b){/*yet do sth. else*/})


具体的函数重载 方法 addMethod
function addMethod(object,name,fn){
var old = object[name];
object[name] = function(){
if(fn.length == arguments.length)
return fn.apply(this,arguments);
else if(typeof old == 'function')
return old.apply(this,arguments);
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: