利用arguments,你可以获得调用者传入的所有参数。也就是说,即使函数不定义任何参数,还是可以拿到参数的值
function abs() {
if (arguments.length === 0) {
return 0;
}
var x = arguments[0];
return x >= 0 ? x : -x;
}
abs(); // 0
abs(10); // 10
abs(-9); // 9
实际上arguments最常用于判断传入参数的个数。你可能会看到这样的写法
// foo(a[, b], c)
// 接收2~3个参数,b是可选参数,如果只传2个参数,b默认为null:
function foo(a, b, c) {
if (arguments.length === 2) {
// 实际拿到的参数是a和b,c为undefined
c = b; // 把b赋给c
b = null; // b变为默认值
}
// ...
}
要把中间的参数b变为"可选"参数,就只能通过arguments判断,然后重新调整参数并赋值。
本文介绍如何利用JavaScript中的arguments对象来灵活处理函数调用时传入的不定数量参数,包括获取所有参数、根据参数数量进行条件分支处理以及实现可选参数。
488

被折叠的 条评论
为什么被折叠?



