gpt4 book ai didi

javascript - JS函数声明: curly brace object assigned with an empty object in parameter declaration

转载 作者:数据小太阳 更新时间:2023-10-29 04:33:14 25 4
gpt4 key购买 nike

这是代码,

export function createConnect({
connectHOC = connectAdvanced,
mapStateToPropsFactories = defaultMapStateToPropsFactories,
mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories,
mergePropsFactories = defaultMergePropsFactories,
selectorFactory = defaultSelectorFactory
} = {}) {...}

函数参数声明中的 { connectHOC = connectAdvanced... } = {} 是什么意思?

我知道

= {}

可能意味着函数参数的默认值,但是前面大括号内的代码有什么用?

最佳答案

这是 ES2015 语法。您的函数声明结合了 Destructuring assignment具有默认值。

这是一个使用对象的基本解构赋值:

var {a, b} = {a: "foo", b: "bar"};
console.log(a); // "foo"
console.log(b); // "bar"

您可以在左侧添加默认值:

var {a = "foo", b = "bar"} = {};
console.log(a); // "foo"
console.log(b); // "bar"

当你在声明一个函数时命名参数时,你不使用 var,并且对于对象解构它是相同的:

function test({a = "foo", b = "bar"}){
console.log(a + b);
}
test({}); // "foobar"
test({b: "boo"}); // "fooboo"

当然,您可以定义一个默认值,这样您的函数就不必接受任何参数。

function test({a = "foo", b = "bar"} = {}){
console.log(a + b);
}
test(); // "foobar"

关于javascript - JS函数声明: curly brace object assigned with an empty object in parameter declaration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42418723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com