javascript - 使用对象文字和默认值创建 javascript 类的最佳方法

标签 javascript object

创建 javascript 类的最佳方法是什么,以便可以通过传入对象文字来创建对象,同时维护类中设置的默认值。

var brett = new Person({
    name: 'Brett'
    ,age: 21
    //gender: 'male' //The default is female, so brett.gender will be female
});

最佳答案

可能通过像这样定义构造函数:

function Person(props) {
    this.name = props.name;
    this.age = props.age;
    this.gender = props.gender || 'female';
}

...尽管如果您想传递虚假的性别(例如 ''0falsenullundefined)仍将使用默认值。如果这是一个问题,您可以执行以下操作:

function Person(props) {
    // expected properties
    this.name = props.name;
    this.age = props.age;

    // optional properties
    var defaults = {
        gender: 'female'
        // etc
    };
    for (var k in defaults) {
        this[k] = props.hasOwnProperty(k) ? props[k] : defaults[k];
    }
}

关于javascript - 使用对象文字和默认值创建 javascript 类的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3665347/

相关文章:

javascript - FOR 循环内的嵌套 IF 仅适用于第一个值

java检查对象列表是否包含具有具体名称的对象

javascript - 新的对象数组,但键已更改

javascript - $injector.modulerr 问题

javascript - 添加自定义变量作为 JSON 属性

javascript - 如果我有对数据库的请求,JSON 解析不起作用

c# - 关于 C# 中对象引用类型转换的问题?

arrays - 如何在解析的JSON数组中添加对象?

javascript - ng-if 的无限滚动会扰乱 ng-repeat 中的顺序

javascript - 使用 Node js 和 D3 实时在 map 上绘制国家名称