【问题标题】:passing multiple parameters via object and "automatically" creating variables通过对象传递多个参数并“自动”创建变量
【发布时间】:2023-02-23 10:11:07
【问题描述】:

我是 Javascript 的初学者,正在尝试学习最佳实践。最近我了解了解构,我正在使用它来将多个参数传递给另一个函数,如下所示:

function test() {

let parameter1 = 'something';
let parameter2 = 'something else';
let parameter3 = 'this';

  doSomething({
    parameter1,
    parameter2,
    parameter3})
}

function doSomething(parameters){
  let {parameter1,
  parameter2,
  parameter3} = parameters;

Logger.log(parameter1);
Logger.log(parameter2);
Logger.log(parameter3);
}

我想知道是否有更简单的方法来重新创建变量? 我的意思是,我基本上可以通过引用以下变量来跳过“let”部分: Logger.log(parameter.parameter2)

但我想知道是否有某种 unpack(parameters) 函数与 doSomething 函数中的 let 等效。

我想这样做的原因是因为参数列表很长,我想知道,例如如果有 30 个参数,是否有一个快捷方式可以使用,而不必“重新定义”所有 30 个参数。

【问题讨论】:

  • 您可以从参数中解构 Logger 函数所需的参数,例如:function doSomething({parameter2})

标签: javascript


【解决方案1】:

只需解构函数参数中的参数:

// You didn't include the Logger implementation in your post, so I just create one
const Logger = {
  log: (info) => console.log(info),
};

function test() {
  let parameter1 = 'something';
  let parameter2 = 'something else';
  let parameter3 = 'this';

  doSomething({
    parameter1,
    parameter2,
    parameter3,
  });
}

function doSomething({ parameter2 }) {
  Logger.log(parameter2);
}

test();

【讨论】:

  • 谢谢。我意识到我的问题需要更清楚一点。我正在尝试查看是否有一种方法可以节省大量的打字/剪切粘贴。
  • 如果你没有那么多参数,你可以只使用普通参数,参数通过这些参数按顺序传递。
猜你喜欢
  • 2016-05-13
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多