MMMHUHU
这是es6里面的语法之一。先了解以下对象的解构赋值。如下:// 这个应该很好理解了var { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"bar // "bbb"// 然后解构的时候可以指定默认值var {x = 3} = {};
x // 3var {x, y = 5} = {x: 1};
x // 1y // 5var {x:y = 3} = {};
y // 3var {x:y = 3} = {x: 5};
y // 5var { message: msg = 'Something went wrong' } = {};
msg // "Something went wrong"运行到函数中:// 参数是一组无次序的值
function f({x, y, z}) { console.log(x,y,z) // 3,2,1}
f({z: 3, y: 2, x: 1});所以这个函数等同于这样写:// 这些值是给定的默认值
var connectAdvanced,defaultMapStateToPropsFactories,defaultMapDispatchToPropsFactories,defaultMergePropsFact
ories,defaultMergePropsFactories,defaultSelectorFactoryfunction createConnect(params = {}){ var {
connectHOC = connectAdvanced,
mapStateToPropsFactories = defaultMapStateToPropsFactories,
mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories,
mergePropsFactories = defaultMergePropsFactories,
selectorFactory = defaultSelectorFactory
} = params
}