函数参数数量和类型的变化

函数参数数量和类型的变化

我们经常可以看到,有的方法使用时,多个参数也可以,一个参数也可以

  • 例如 jquery中 如果有两个参数,则第二个参数是回调函数 ,如果三个参数,第二个参数是回调函数的形参,第三个参数是回调函数
on("click",function(){

});
on("click",{a:1,b:2},function(){

})

其实,在底层的代码中,这种效果很容易实现

function on(type,data,handler){
    if(data.constructor===Function){   //如果第二个参数是函数类型,将第二个参数给了第三个回调函数,第二个参数为null,如果不是,则第二个参数是回调函数的形参
        handler=data;
        data=null;
    }
 }
原文地址:https://www.cnblogs.com/94-Lucky/p/13498452.html