js方法重载需要做两件事:1.方法中参数的个数2.参数的类型
在每个js方法中都存在一个名为arguments的文本变量,它类似一个数组,包含所有传递给方法的参数,但它又不是真实的数组,所以不能调用push()来增加新的内容,也不能修改它。但是可以访问这个变量中的属性值,该变量有 .length属性,可以被访问。
function setMessage(msg,obj){ if(arguments.length==2){ obj.handleMsg(msg); }else { alert(msg); } } setMessage("hello,world!"); setMessage("How are you?",{ handleMsg:function(msg){ alert("This is a custom message:"+msg); } });
js类型校验 ,通过typeof
function displayError(msg){ if(typeof msg == "undefiend"){ msg="an error occurred"; } alert(msg); }
function typeChecking(num,arr){ if(num.constructor==String){ num = parseInt(num); } alert(num); if(arr.constructor == Array){ arr = arr.join(','); } alert(arr); }