在Javascript中,你可以做到
class Derp {
constructor(config) {
this.index = config.index || null;
this.name = config.name || "derpy";
}
}
这非常适合在对象中设置许多值。但是,当config属性是值为0
(零)的数字时,这会因0
计算为falsy而中断。
是否有简化方法来实现"默认值设置"没有明确检查undefined的行为?
if (config.index !== undefined) {
this.index = config.index;
}
答案 0 :(得分:1)
是的! Destructuring and defaults在class
完成(ES6)的同时将其变为JavaScript:
class Derp {
constructor(config) {
const {
index = null,
name = "derpy",
} = config;
this.index = index;
this.name = name;
}
}
或者,如果您对此感到满意,请充分利用解构来避免重复使用该属性名称:
class Derp {
constructor(config) {
({
index: this.index = null,
name: this.name = "derpy",
} = config);
}
}
有些人可能会觉得这很难读。