Javascript中参数和重载的引入
由于语言设计错误,参数可以被视为数组。复制代码代码如下所示:
函数0(){
console.log(参数{ 0 });
}
将会有
复制代码代码如下所示:
函数0(){
对于(var i = 0;i < arguments.length;i++){
console.log(参数{我});
}
}
它利用一个Javascript,事实是,Javasc
这里的参数变量提供了一个类似于数组的参数接口,因为这里参数的参数可变,我们可以使用这个有趣的东西来做一些有趣的事情,比如重载。
Javscript heavy load
有对stackvoerflow重载问题,有第一个答案
复制代码代码如下所示:
如果(typeof的朋友=未定义){
{人}
}
还有一个答案是
复制代码代码如下所示:
开关(参数,长度){
案例0:
可能是错误
打破;
案例1:
做某事
打破;
案例2:
默认情况下:完成多个参数的处理
/做其他事情
打破;
}
只是这种方式真的不好。我们的功能最终会变成这样吗
复制代码代码如下所示:
功能Zero1(){
console.log('arguments 1)
};
功能的准点(){
console.log('arguments 2)
};
函数0(){
如果(arguments.length = = 1){
ZERO1();
别的{ }
ZERO2();
}
}
看起来真的一点也不好看。即使我们换了开关,情况也不太好。
Javascript参数不是数组。
参数并不是我们所看到的数组,有时也可能不是数组。
复制代码代码如下所示:
函数hello(){
console.log(形式参数);
}
这里的参数类型是一个对象,虽然数组的类型也是一个对象,但是我们可以把它转换成数组。
复制代码代码如下所示:
var args = array.prototype.slice.call(参数);
但它也表明这不是一个数组,它只有一个数组属性,即长度。
arguments.callee
引用当前执行的函数。
arguments.caller
引用调用当前执行函数的函数。
arguments.length
引用传递给函数的参数的数目。