我很可能无法对我的问题得到任何肯定的回答,但无论如何我都会问。
我有一个带对象参数的函数。
function myFunc(options) {}
此对象包含我要为其指定默认值的属性。使用解构,我可以很容易地做到这一点:
function myFunc({
mandatory_field, // Without default value
i = 1,
j = 2,
k = 3,
obj: {
prop1 = 'Val',
prop2 = 2
} = {},
str: 'Other val'
} = {}) {}
现在,在函数内部,我将所有这些变量都带有默认值或传递的变量,这很好
但是,我需要将这个options
对象传递给其他函数,所以最后,我可能需要以这种方式重建它:
function myFunc({
mandatory_field, // Without default value
i = 1,
j = 2,
k = 3,
obj: {
prop1 = 'Val',
prop2 = 2
} = {},
str: 'Other val'
} = {}) {
let options = {
mandatory_field,
i,
j,
k,
obj: {
prop1,
prop2
},
str
};
otherFunc1(options);
otherFunc2(options);
}
但这感觉真的很多余。
我认为对结构化对象进行别名会有效,但是it doesn't 有没有人能想到的更清洁的方式来做这件事?