jAn*_*ndy 3 javascript destructuring ecmascript-6
我在这周围旋转了一会儿,但似乎我无法按照我希望的方式完成这项工作.实际上,我想要的是为可选参数设置嵌套的默认值.我想看到的输出应该是:
55, 44, { sub1: '0', sub2: 55, sub3: 'all'}
Run Code Online (Sandbox Code Playgroud)
相反,我只是得到这个:
55, 44, { sub2: 55 }
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个抬头吗?
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
}
});
Run Code Online (Sandbox Code Playgroud)
你是路过{sub2: 55}的param3,所以它不会评价的默认值{ 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |