我知道通过arguments
对象可以实现这样的功能,但是除了这个方法还有别的方法吗?,因为我发现书上并不推荐使用arguments
对象,在严格模式下也做了一下限制,而且 ECMAscript 6 就不再存在arguments
对象了(來源請求).
《javascript 高级程序设计第 3 版》 703 页
Harmony 中不再有 arguments 对象,因此也就无法通过它来读取到未声明的参数
附:
版本:2012 年 (其中對 ES6 的描述可能已過時)
高洛峰2017-04-10 14:54:17
严格模式只是限制不能用arguments.callee
arguments.caller
,不能用arguments
作为变量名,并没有限制arguments作为不定参数的应用,在ES6普及之前,没有arguments的替代品
PHP中文网2017-04-10 14:54:17
印象中并没有,可以将所有参数放到一个对象里面传这个对象进函数达到类似的效果,比如:
function fn(obj) {
switch(obj.length){
case 3:
return obj.length;
break;
default:
return false;
break;
}
}
fn({
first: 1,
second: 2,
third: 3
});
当然到了 ES6 就支持你说的不定参数啦,参考资料:http://es6.ruanyifeng.com/#docs/function