我今天在搞弄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/