Javascript中有一个零默认运算符的简写方法吗?

时间:2018-04-04 23:47:13

标签: javascript

在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;
}

1 个答案:

答案 0 :(得分:1)

是的! Destructuring and defaultsclass完成(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);
    }
}

有些人可能会觉得这很难读。