定义
函数重载为声明多个相同函数名,参数不同的函数,调用时根据参数不同执行响应操作
javascript 实现方法
首先可以想到的是判断 arguments.length 的长度,但是这不是最好的方法
另外一种是使用 typeof 检测参数的类型,也不是最好的方法
以下为一些其他实现方法
function foo(a, b, opts) {
if(opts.test) {
//do sth
}
}
foo(1, 2, {"method":"add"});
foo(3, 4, {"test":"equals", "bar":"tree"});
另外如果需要在其他函数内部使用 argumentsx 来调用函数,切记一定要重新引用
具体原因是因为 arguments
与 this
都会在函数作用域内被覆盖。