类声明
语法格式
代码语言:javascript复制class Person{
//构造方法
constructor(name){
this.name = name
}
run(){
console.log('run')
}
}
//实例化
代码语言:javascript复制var ll = new Person('test')
ll.run()
类继承
语法格式
代码语言:javascript复制class Father{
money(){
...
}
}
class Son extends Father{
}
var son = new Son();
son.money();
看如下代码能否正常运行
代码语言:javascript复制 class Father{
constructor(x,y){
this.x = x;
this.y = y;
}
sum(){
console.log(this.x this.y)
}
}
class Son extends Father{
constructor(x,y){
this.x = x;
this.y = y;
}
}
var son = new Son(1,2)
son.sum();
由于子类也有个构造函数,参数就被传进了子类,并没有到父类的构造函数去 如果有方法将这个参数传递给父类那么问题就解决了
super关键字
super关键字用于访问和调用对象父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数
对子类进行修改
代码语言:javascript复制 class Son extends Father{
constructor(x,y){
super(x,y);//调用父类构造函数
}
}
super调用父类普通函数
代码语言:javascript复制 class Father{
say(){
return '父亲'
}
}
class Son extends Father{
say(){
console.log('儿子')
console.log(super.say())
}
}
var son = new Son()
son.say();