【问题标题】:Default parameters order wrong result默认参数顺序错误结果
【发布时间】:2021-01-30 18:06:19
【问题描述】:

当我尝试运行它时,我看到了一个给出错误输出的示例。我不明白为什么在按顺序提供时会得到错误的结果。在最后一次通话中,我期待a=7, b=10。怎么了?

"use strict";

function f(a=1, b=2){ return(`a=${a}, b=${b}`) }
f() // a=1, b=2
f(a=5) // a=5, b=2
f(a=7, b=10) // a=7, b=10
f(b=10, a=7) // Order is required: a=10, b=7

【问题讨论】:

标签: javascript default-arguments


【解决方案1】:

提供的参数按照函数中定义的顺序进行处理。要实现类似的功能,您可以使用对象参数:

function f(prmObj){ return(`a=${prmObj.a}, b=${prmObj.b}`) }

f({b: 10, a: 7})  // a=7, b=10

【讨论】:

猜你喜欢
  • 2011-05-07
  • 2012-05-14
  • 2012-05-06
  • 1970-01-01
  • 2018-11-02
  • 2019-01-12
  • 2018-09-23
  • 2020-09-04
  • 1970-01-01
相关资源
最近更新 更多