编程语言
首页 > 编程语言> > javascript – 解构和设置嵌套的默认值

javascript – 解构和设置嵌套的默认值

作者:互联网

我在这周围旋转了一会儿,但似乎我无法按照我希望的方式完成这项工作.实际上,我想要的是为可选参数设置嵌套的默认值.
我想看到的输出应该是:

55, 44, { sub1: '0', sub2: 55, sub3: 'all'}

相反,我只是得到这个:

55, 44, { sub2: 55 }

有人可以给我一个抬头吗?

function foo({ param1=55, param2=44, param3:param3 = { sub1:sub1='0', sub2:sub2=200, sub3:sub3='all' } } = { }) {
  console.log(param1, param2, param3);
}

foo({
  param3: {
    sub2: 55
  }
});

解决方法:

你正在为param3传递{sub2:55},所以它不会评估默认值{sub1:sub1 =’0′,sub2:sub2 = 200,sub3:sub3 =’all’}(这里是文字,不是分配目标,所以不会做你认为它做的事情).

如果你希望param3始终是一个具有3个属性的对象,由三个默认值变量构造,你必须自己明确地构建它:

function foo({param1=55, param2=44, param3: {sub1='0', sub2=200, sub3='all'} = {}} = {}) {
  var param3 = {sub1, sub2, sub3};
  console.log(param1, param2, param3);
}

标签:destructuring,javascript,ecmascript-6
来源: https://codeday.me/bug/20190828/1750639.html