javascript - 在Javascript中覆盖名为params的函数?
问题描述
function lookupRecord2({value1 = "blue", value2 = 7}) {
console.log('theValues');
console.log(value1);
console.log(value2);
}
lookupRecord2( { value1: 'pink', value2: 9 } );
我读过 Javascript 不允许使用命名参数,所以我很困惑上面的代码是如何工作的。这里发生了什么让我可以覆盖参数?
我认为令人困惑的是参数分配有“=”,而我传递的对象使用“:”......
添加:
我知道这是一种解构形式,但我仍然无法理解它,因为它在函数声明中。
解决方案
function des({ a = 1, b = 2 } = {}) {
console.log(a);
console.log(b);
}
des();
这是一种破坏性的语法,我们可以在其中传递默认值。它适用于任何地方,而不仅仅是在函数声明中。
{ a = 1, b = 2 } = { b:3 }
// assigns 1 to "a" and because "b" already exists, "b" is 3
推荐阅读
- neo4j - Neo4j Cypher - 返回相同类型的节点及其嵌套节点
- uwp - 将应用程序上传到 Windows 应用商店时“此提交失败,错误代码 1004”
- php - 如何在数组中使用具有不同名称的多个文本框在 mysql 中插入多行
- java - 如何检查 Android 的 KeyStore 的证书吊销列表 (CRL)?
- swift - UITextView 截断最后一行文本
- python - 如何计算程序中特定用户的准确性
- python - 如何纠正文本文档中的拼写错误(适用于单个单词)
- python - 如何修复:Python 中的“Switch”语句无法识别输入字符串
- android - 自定义 Android 键盘:如何在 InputMethodService 中获取光标位置更新?
- amcharts - Amcharts 4 树状图为所有儿童添加项目符号