让我们假设以下代码:
class Animal{
constructor(name){
this.name=name;
}
}
class Dog extends Animal{
constructor(lastname){
super();
this.lastname=lastname;
}
}
var animal = new Animal('jim');
var rudy = new Dog('rudy');
在子类实例化之后的delete rudy.name
之外是否存在另一种直接实例化子类而没有父类的name属性的方法?
答案 0 :(得分:0)
您可以使用非字符串值覆盖它,特别是undefined
,这类似于不存在的属性:
class Dog extends Animal{
constructor(lastname){
super(undefined);
this.lastname=lastname;
}
}
但实际上,如果你的班级没有" parent" class has,它根本不应该是一个子类 - 它会违反Liskov substitution principle。