这是代码,
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/