本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Class: 类是函数的一种,但不使用function来初始化,而是用关键字class,并在constructor()方法中分配属性
方法
constructor: 用于创建和初始化在类中创建的对象的特殊方法
如果没有构造方法,javascript将添加一个不可见的空构造方法
同时,一个类不能使用多个constructor()方法,这将抛出SyntaxError
可以使用super()方法类调用父类的构造方法
关键字
extends: 扩展类(继承)
static: 为类定义静态方法
super: 应用父类
创建类
class Car { // 创建类
constructor(brand){
this.carname = brand
}
}
mycar = new Car('Ford') // 创建Car类的对象
通过继承创建类(extends关键字)
extends用于创建一个类(父类)的子类 子类继承了父类的所有方法
class Car { // 类名称首字母大写
constructor(){
this.carname = brand
}
present(){
return 'I have a ' + this.carname
}
}
class Model extends Car {
constructor(brand, mod){
super(brand)
this.model = mod
}
show(){
return this.present() + ', it is a ' + this.model
}
}
mycar = new Model("Ford", "Mustang")
document.getElementById("demo").innerHTML = mycar.show()
super()方法引用父类
使用extends继承父类的属性和方法时,如果父类的构造函数是非参数调用的,可以需不要使用super(),因为会默认调用super(),如果父类的构造函数是需要参数的,必须调用super(...args),否则无法使用this
通过在构造方法中调用super(),将调用父类的构造方法,并可以访问父类的属性和方法