【问题标题】:Changing the default value of a parameter in a function, is it possible?更改函数中参数的默认值,可以吗?
【发布时间】:2019-07-22 19:10:17
【问题描述】:

我有一个函数数组,我需要在循环中将参数的默认值更改为每个函数的另一个值。这可能吗?例如:

var externalValidations = [
  function required(v, model = {}) {
     console.log(model)
     return v !== null || 'required field'
  },
  
  function requiredTwo(v, model = {}) {
     console.log(model)
     return v !== null || 'required field'
  },
]

externalValidations.forEach(item => {
  // --> Can I here somehow change the default value of a parameter for each function?! .. so it looks like this:
  // function requiredTwo(v, model = {value: 'value'}) {
  //   console.log(model)

  //   return v !== null || 'Campo obrigatório'
  // },
  console.log(item)
})

【问题讨论】:

  • 将函数封装在另一个函数中?
  • 你的actual problem是什么?
  • [default => function required(v, model = default) { /*...*/ }, /*...*/] 怎么样,然后是externalValidations.map(it => it({ /*...*/ })) ...

标签: javascript vue.js ecmascript-6


【解决方案1】:

不,您不能从外部更改函数的作用。此外,默认初始化表达式在每次调用时都会在需要时进行评估,它们不是安装在函数上的静态值。

您所能做的就是创建调用旧函数的新函数,拥有自己的默认值并传递它们。

【讨论】:

    【解决方案2】:

    假设我们有函数 f

    function f(x = 'a') {
    }
    

    我们可以更改它的默认值,只需将其封装在另一个函数中

    const g = (x = 'b') => f(x);
    

    f'a' 时,g 的默认参数设置为'b'

    【讨论】:

    • 这个回答对你有帮助吗?
    猜你喜欢
    • 2011-04-18
    • 2014-04-28
    • 2015-05-19
    • 2019-12-30
    • 2014-07-30
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多