我今天在搞弄ES6语法,并组成了这个基本测试类:

class Animal {
  constructor(type, age, name = "Unnamed Animal") {
    this.type = type;
    this.age = age;
    this.name = name;
  }
  talkToMe() {
    console.log(`Hi, my name is ${this.name}, and I am a ${this.type}!`);
  }
}


有没有办法使用新的ES6语法使构造函数更简洁?也许像

constructor(type, age, name = "Unnamed Animal") {
    this = {type, name, age};
}

最佳答案

我之所以说“不”,是因为我确定您的代码非常简单,但后来我想起了Object.assign和使用object constructor shorthand syntax的能力。

如果您要设置很多属性,则可以将它们分配如下:

constructor(type, age, name = "Unnamed Animal") {
  Object.assign(this, {
    type,
    age,
    name
  });
}


这将对性能造成影响,就可读性而言,我认为这几乎是相等的,但是如果键入this.prop = prop对您来说很烦,那么这是另一种选择。

就个人而言,我会坚持:

this.name = name;
this.age = age;
this.type = type;

关于javascript - 有没有一种方法可以使构造函数的分配更简洁(更简单)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40243328/

10-11 01:08