首页 > 解决方案 > 在Javascript中覆盖名为params的函数?

问题描述

function lookupRecord2({value1 = "blue", value2 = 7}) {
        console.log('theValues');
        console.log(value1);
        console.log(value2);
}

lookupRecord2( { value1: 'pink', value2: 9 } );

我读过 Javascript 不允许使用命名参数,所以我很困惑上面的代码是如何工作的。这里发生了什么让我可以覆盖参数?

我认为令人困惑的是参数分配有“=”,而我传递的对象使用“:”......

添加:

我知道这是一种解构形式,但我仍然无法理解它,因为它在函数声明中。

标签: javascriptnode.js

解决方案


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

更多信息在这里:有人能解释一下这个看似奇怪的赋值 `{key=value} = argument`


推荐阅读