<分区>
我的方法的参数之一应该是一个对象。 像往常一样,我可以在原型(prototype)中为它指定一个默认值。
但是只有当我在调用中完全省略这个参数时才会使用这个默认值。
但我希望它应用于字段级别:如果我提供了一个值但省略了默认值中存在的某些字段,则应从中填写它们:
function method(id, data, options = { original: true, duplicate: true }) {
console.log(options.original);
console.log(options.duplicate);
}
method("id", "data", { duplicate: false })
// undefined <= I expect this to be true
// false
method("id", "data")
// true
// true
默认情况下未指定的任何参数也应被接受并按原样传递:
method("id", "data", { duplicate: false, other: false })
是否有任何句法工具可供我使用?而且,即使没有并且我必须使用自定义逻辑,我能否以某种方式从其中的原型(prototype)中提取默认值?
ES6 Object Destructuring Default Parameters实现了类似的东西,但它将“字段”转换为单独的变量(虽然我希望它们保留在对象内)并且它不允许原型(prototype)中未指定的字段。