可以使用比正式接收更多参数调用JS函数吗?

Dav*_*ave 2 javascript

我遇到了调用fn(a,b,c)函数的代码,但fn的定义是fn(a,b),然后在作者内部调用参数[2],这意味着第三个未声明的参数.这是合法的吗?(我是该网站的新手,在发布之前尝试搜索相关问题,但无法找到.如果有这样做的习惯,我很乐意接受教育.)谢谢.

Lil*_*ver 6

这是允许的.为了便于阅读和理智,通常最好指定好的参数名称,然后检查它们是否为空.阅读代码的人不会期望或理解这种技巧.

有些情况可以接受......例如:

function add(){
  var sum = 0;
  for (var i = 0; i < arguments.length; i++){
    sum += arguments[i];
  } 
  return sum;
}
Run Code Online (Sandbox Code Playgroud)

但是,即使在这种情况下,最好为读者添加占位符变量名称:

function add(val1, val2, etc){
  var sum = 0;
  for (var i = 0; i < arguments.length; i++){
    sum += arguments[i];
  } 
  return sum;
}
Run Code Online (Sandbox Code Playgroud)