JavaScript 类继承
类继承
要创建类继承,请使用 extends
关键词。
通过类继承创建的类将继承另一个类的所有方法:
例子
创建一个名为“Model”的类,它将继承“Car”类的方法:
汽车类 {
构造函数(品牌){
this.carname = 品牌;
}
展示() {
返回'我有一个'+this.carname;
}
}
模型类扩展了汽车{
构造函数(品牌,mod){
超级(品牌);
这个.模型=mod;
}
展示() {
返回 this.present() + ',它是一个 ' + this.model;
}
}
让myCar =新模型(“福特”,“野马”);
document.getElementById("demo").innerHTML = myCar.show();
亲自尝试 »
这 super()
方法引用父类。
通过调用 super()
在构造函数方法中,我们调用父级的构造函数方法并访问父级的属性和方法。
继承对于代码可重用性很有用:创建新类时可以重用现有类的属性和方法。
Getters 和 Setters
类还允许您使用 getter 和 setter。
对你的属性使用 getter 和 setter 是明智之举,特别是当你想在返回它们之前或者设置它们之前对它们进行一些特殊操作的时候。
要在类中添加 getter 和 setter,请使用 get
和set
关键词。
例子
为“carname”属性创建一个 getter 和一个 setter:
汽车类 {
构造函数(品牌){
this.carname = 品牌;
}
获取 cnam() {
返回这个.carname;
}
设置 cnam (x){
这个.汽车名称 = x;
}
}
让 myCar = new Car("福特");
document.getElementById (“demo”).innerHTML = myCar.cnam;
亲自尝试 »
笔记: 即使 getter 是一种方法,当您想要获取属性值时也不要使用括号。
getter/setter 方法的名称不能与属性的名称相同,在这种情况下 carname
.
许多程序员使用下划线字符 _
在属性名称之前将 getter/setter 与实际属性分开:
例子
您可以使用下划线字符将 getter/setter 与实际属性分开:
汽车类 {
构造函数(品牌){
this._carname = 品牌;
}
获取汽车名称(){
返回这个._carname;
}
设置汽车名称(x){
这个._carname = x;
}
}
让 myCar = new Car("福特");
document.getElementById("demo").innerHTML = myCar.汽车名称;
亲自尝试 »
使用 二传手,使用与设置属性值时相同的语法,不需要括号:
例子
使用 setter 将汽车名称更改为“Volvo”:
汽车类 {
构造函数(品牌){
this._carname = 品牌;
}
获取汽车名称(){
返回这个._carname;
}
设置汽车名称(x){
这个._carname = x;
}
}
让 myCar = new Car("福特");
myCar.carname = "沃尔沃";
document.getElementById("demo").innerHTML = myCar.汽车名称;
亲自尝试 »
提升
与函数和其他 JavaScript 声明不同,类声明不会被提升。
这意味着您必须先声明一个类,然后才能使用它:
例子
//您还不能使用该类。
//myCar = 新车(“福特”)
// 这将引发错误。
汽车类 {
构造函数(品牌){
this.carname = 品牌;
}
}
// 现在您可以使用该类:
让 myCar = new Car("福特")
亲自尝试 »
笔记: 对于其他声明(例如函数),当您尝试在声明之前使用它时不会收到错误,因为 JavaScript 声明的默认行为是提升(将声明移至顶部)。