【问题标题】:call a method with specific (optional) arguments调用具有特定(可选)参数的方法
【发布时间】:2021-06-04 13:06:06
【问题描述】:

我需要使用一个内置的 Foo 方法,它有 6 个参数(2 个必需,4 个可选)

Param1 > Required
Param2 > Required
Param3 > Optional > Default value: False (type boolean) 
Param4 > Optional > Default value: False (type boolean)  
Param5 > Optional > Default value: 0 (type integer)
Param6 > Optional > Default value: False (type boolean)

我只需要将 Param5 更改为不同的值。

有没有办法避免使用所有默认参数?

bar.Foo(x, y, false, false, 10, false)

我想要实现的是这些方面的东西,我只使用不是默认的东西

bar.Foo(x, y, 10)

x 是 Param1,y 是 Param2,10 是 Param5

【问题讨论】:

  • 可以传undefined,点赞bar.Foo(x, y, undefined, undefined, 10, undefined)
  • 考虑传递一个对象并改用解构?

标签: javascript methods


【解决方案1】:

通常,当我开始使用具有太多可选参数的函数时,我会更改使用选项对象的方法,而不是在我的函数上创建越来越多的参数......因为你觉得这会变得混乱和烦人...... .

因此,例如,在您的情况下,我会将其更改为这样的...

const bar = {
  Foo: (param1, param2, options) => {
    const {param3 = false, param4 = 10, param5 = false} = options;
    
    console.log({param1, param2, param3, param4, param5});
  }
}


const x = 1; const y = 2;
bar.Foo(x, y, {param4: 10})

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2013-07-03
    • 2012-04-16
    • 2016-10-24
    相关资源
    最近更新 更多