javascript - 默认参数顺序错误结果
问题描述
当我尝试运行它时,我看到了一个给出错误输出的示例。我不明白为什么在按顺序提供时会得到错误的结果。在最后一次通话中,我期待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
解决方案
提供的参数按函数中定义的顺序处理。要实现类似的功能,您可以使用对象参数:
function f(prmObj){ return(`a=${prmObj.a}, b=${prmObj.b}`) }
f({b: 10, a: 7}) // a=7, b=10
推荐阅读
- rasa-nlu - 如何在 RASA 中使用多意图?
- arrays - 列表初始化仍然为空
- vscode-extensions - 在 Visual Studio Code 扩展测试中模拟用户击键
- python - 使用 sqlite3 python 错误进行数据库搜索
- python - 如何由用户启动进程,而不是在 Python 中继续使用 Selenium
- azure-devops - 检索已发布 Azure DevOps 工件的正确方法
- javascript - 什么事件可以用来检测输入的值已经改变,Angular
- xcode - 更新“未在指定位置找到 SDK”后,Visual Studio 2019 无法连接到 Mac 安装的 Visual Studio for Mac
- objective-c - 重置/重新初始化 NSXPCConnection?
- python - Python:如何使用瓶子从本地主机获取某个 url?