繁体   English   中英

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

[英]why not pass function arguments in Object or Associative Array?

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

代替

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

为什么不

function (array) { return array.a }

原因:

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

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

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

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

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

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

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

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

对于传递给函数的内容没有固定的规则,但是最重要的是要对此有所了解。

您应该了解这种优雅的模式- 接收对象,返回对象(RORO)您可能会爱上它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM