[英]why not pass function arguments in Object or Associative Array?
我有一个问题:为什么不在关联数组中传递函数自变量? 还是对象? 这是个坏习惯吗?
代替
function (a, b, c) { return a }
为什么不
function (array) { return array.a }
?
原因:
当我们调用此函数时,我们以错误的顺序传递了args,它不会中断。
当函数更新并且所需的args更改时(例如,我们将“ d”添加为args),我们不需要更改函数args声明
我是编程新手,对这个愚蠢的问题感到抱歉。
使用多个基本类型参数而不是对象或关联数组的优点之一是,只要没有太多参数,就可以更容易地读取它。 如果您不想强迫调用者事先将参数打包到一个对象中,则重用起来也可能会更容易。
将对象或数组作为参数传递当然不是一个坏习惯。 在某些情况下,几乎绝对是最佳选择。
如果您有大量参数,则可能应该将带有参数的对象传递给您。 这使事情更容易阅读,将来也更容易修改。 如果这样做,最好在函数定义的开头解构对象,如下所示:
function doStuff (parameterObject) {
const { a, b, c } = parameterObject;
// ...
}
当一个函数没有最大数量的参数时,最好将所有参数传递到数组中,然后在函数中进行处理。
对于传递给函数的内容没有固定的规则,但是最重要的是要对此有所了解。
您应该了解这种优雅的模式- 接收对象,返回对象(RORO)您可能会爱上它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.