这是代码,
export function createConnect({
connectHOC = connectAdvanced,
mapStateToPropsFactories = defaultMapStateToPropsFactories,
mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories,
mergePropsFactories = defaultMergePropsFactories,
selectorFactory = defaultSelectorFactory
} = {}) {...}
Run Code Online (Sandbox Code Playgroud)
什么{connectHOC = connectAdvanced ...} = {}意味着在函数参数声明中?
我知道
= {}
Run Code Online (Sandbox Code Playgroud)
可能意味着函数参数的默认值,但是前面括号内代码的用法是什么?
这是ES2015语法.您的函数声明将Destructuring赋值与默认值组合在一起.
这是使用对象的基本解构赋值:
var {a, b} = {a: "foo", b: "bar"};
console.log(a); // "foo"
console.log(b); // "bar"Run Code Online (Sandbox Code Playgroud)
您可以在左侧添加默认值:
var {a = "foo", b = "bar"} = {};
console.log(a); // "foo"
console.log(b); // "bar"Run Code Online (Sandbox Code Playgroud)
在声明函数时命名参数时,不要使用var,并且使用对象解构时它将是相同的:
function test({a = "foo", b = "bar"}){
console.log(a + b);
}
test({}); // "foobar"
test({b: "boo"}); // "fooboo"Run Code Online (Sandbox Code Playgroud)
当然,您可以定义一个默认值,这样您的函数就不必采用任何参数.
function test({a = "foo", b = "bar"} = {}){
console.log(a + b);
}
test(); // "foobar"Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |