Javascript 的重载
- 重载需要的两件事情:判断参数数量、判断参数类型
- Javascript拥有天生的重载能力:JS 的每个函数都带有以一个包含函数作用域的变量 arguments,它是一个包含所有传给函数的参数的伪数组,可以访问其元素(不能修改)。
几个重载的例子
例1
function sendMessage(msg, obj){ if(arguments.length == 2){ obj.handleMsg(msg); } else{ console.log(msg); } } //一个参数 => hello world sendMessage("hello world"); // //两个参数 => This is a custom message: How are you? sendMessage("How are you?", { handleMsg: function(message){ console.log("This is a custom message: "+message); });
例2
function makeArray(){ var arr = []; for(var i = 0; i < arguments.length; i++){ arr.push(arguments[i]); } return arr; } makeArray(1,2,3,4); // => [1,2,3,4] makeArray(1,'2', null, undefined, '3'); // => [1,'2', null, undefined, 3]