为了账号安全,请及时绑定邮箱和手机立即绑定

js函数里面的参数可以这样写?怎么理解呢?

js函数里面的参数可以这样写?怎么理解呢?

宝慕林4294392 2018-10-12 14:15:17
function createConnect({  connectHOC = connectAdvanced,  mapStateToPropsFactories = defaultMapStateToPropsFactories,  mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories,  mergePropsFactories = defaultMergePropsFactories,  selectorFactory = defaultSelectorFactory} = {}){}
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

这是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
    
}


查看完整回答
反对 回复 2018-11-08
  • 1 回答
  • 0 关注
  • 472 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号