1.js允许传入任意个参数而不影响函数的调用,因此传入的参数比定义的参数多没有问题。
2.js有一个关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数,arguments类似Array,但它不是一个Array。
function foo(x) {
console.log('x = ' + x); // 10
for (var i=0; i<arguments.length; i++) {
console.log('arg ' + i + ' = ' + arguments[i]); // 10, 20, 30
}
}
foo(10, 20, 30);
返回值为
x = 10
arg 0 = 10
arg 1 = 20
arg 2 = 30
3.rest关键字,替代多余的参数