繁体   English   中英

如何在javascript对象中使用构造函数以仅使用`this`中的属性?

[英]How do I use the constructor in a javascript object to only use the properties in `this`?

我想创建以下类的实例:

class Person {
    firstName;
    lastName;
    birthday;
    constructor(props: Person) {
        {firstName,lastName,birthday} = props
    }
}

var me = new Person({firstName: "donald", 
lastName: "trump",
 middleName: "john"})

我希望构造函数只选择要分配给“ this”的类的属性,以便me成为{firstName: "donald", lastName: "trump", birthday: undefined}

我的想法是这样做:

class Person {
    firstName;
    lastName;
    birthday;
    constructor(props: Person) {
        this.{firstName,lastName,birthday} = props
    }
}

var me = new Person({firstName: "donald", lastName: "trump", middleName: "john"})

或类似的东西。

您可以分两行执行此操作:

const {firstName,lastName,birthday} = props;
Object.assign(this, {firstName,lastName,birthday});

现在,如果这仅是三个属性,请执行以下操作:

this.firstName = props.firstName;
this.lastName = props.lastName;
this.birthday = props.birthday;

它更具可读性,并且速度更快。 值得多加一线。

您还可以更改构造函数签名,以使其破坏所需的属性:

constructor({firstName: string, lastName: string, birthday: Date}) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.birthday = birthday;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM