我试图为options参数定义一个具有以下行为的构造函数:
class Test {
constructor({
someOption = 'foo',
otherOption = 'bar',
aSeedOfSomeSort = Math.random(),
// ...
}) {
console.log(
someOption, otherOption, aSeedOfSomeSort
);
}
}
new Test({someOption: 'lol'});
new Test({otherOption: 'derp'});
new Test({aSeedOfSomeSort: 0.5});
new Test({});
new Test(); // here's the problem

这很好,但是,我希望构造函数能够工作,以便使用所有默认参数,我不必传递空对象。我不关心对象本身是否在参数中被命名,但是在构造函数的上下文中,我想要一种干净的方法来直接访问没有命名空间或使用with
的所有选项。 / p>
这可能吗?
答案 0 :(得分:2)
在构造函数中,使用:
constructor({
someOption = 'foo',
otherOption = 'bar',
aSeedOfSomeSort = Math.random(),
// ...
} = {})
通过在末尾添加= {}
,如果未定义,它将成为输入参数的默认值。