为什么不在对象或关联数组中传递函数参数?

时间:2018-09-14 06:01:17

标签: javascript

我有一个问题:为什么不在关联数组中传递函数自变量?还是对象?这是个坏习惯吗?

代替

function (a, b, c) { return a }

为什么不

function (array) { return array.a }

原因:

  1. 当我们调用此函数时,我们以错误的顺序传递了args,它不会中断。

  2. 在更新函数并更改所需的args时(例如,我们将“ d”添加为args),我们不需要更改函数args声明

我是编程新手,对这个愚蠢的问题感到抱歉。

1 个答案:

答案 0 :(得分:0)

拥有多个基本类型参​​数而不是对象或关联数组的优点之一是,只要没有太多参数,就可以说更容易阅读。如果您不想强迫调用者事先将参数打包到一个对象中,则重用起来也可能会更容易。

将对象或数组作为参数传递当然不是坏习惯。在某些情况下,几乎绝对是最佳选择。

如果您有大量参数,则可能应该将带有参数的对象传递给您。这使事情更容易阅读,将来也更容易修改。如果这样做,最好在函数定义的开头解构对象,如下所示:

function doStuff (parameterObject) {
  const { a, b, c } = parameterObject;
  // ...
}

当一个函数没有最大数量的参数时,最好将所有参数传递到数组中,然后在函数中进行处理。

对于传递给函数的内容没有设定的规则,但是最重要的是要对此保持精明。