通过构造函数设置子类属性的不好的做法是直接在子类的构造函数中使用this
关键字来设置属性。这种做法存在以下几个问题:
更好的做法是使用父类的构造函数来设置属性,然后通过子类的构造函数调用父类的构造函数来完成属性的初始化。这样可以保持类的封装性,减少代码重复,并且方便维护和扩展。
以下是一个示例代码:
class Parent {
constructor(name) {
this.name = name;
}
}
class Child extends Parent {
constructor(name, age) {
super(name); // 调用父类的构造函数来设置属性
this.age = age;
}
}
const child = new Child('Tom', 10);
console.log(child.name); // 输出:Tom
console.log(child.age); // 输出:10
在这个示例中,父类Parent
有一个属性name
,子类Child
通过调用super(name)
来设置name
属性,并且还可以添加自己的属性age
。这样就实现了通过构造函数设置子类属性的良好做法。
领取专属 10元无门槛券
手把手带您无忧上云