ES6 中 class 类继承
类继承是通过 class 声明一个构造函数,这个构造函数也是可以通过 new 实例化
那就废话不多说了,直接上代码
首先先创建一个类
class Person {
// 添加成员
head = 1
legs = 2
language = '汉语'
constructor(uname, age) {
// 构造函数用于接收参数,初始化
// 在 new 的时候就会执行
this.uname = uname
this.age = age
}
say() {
console.log('说话!!!')
}
eat() {
console.log('吃饭!!!')
}
// static 修饰的成员为静态成员
static skin = 'yellow'
static language = '汉语'
static sey() {
console.log('一块牛肉')
}
}
class Son extends Person {
eye = 2
}
let obj = new Son('张三', 22)
console.log(obj)
控制台打印
从控制台打印结果可以看出,Son 实例对象通过 extends 关键字确实继承了 Person 里面的属性和方法,通过原型链的作用可以直接调用, Person 构造函数里面的 constructor 是一个构造器,也称之为(构造函数、构造方法)
如果父元素里面有 constructor 构造器,子元素里面也有 constructor 构造器,那就得用到 super 关键字,直接上代码
class Person {
//添加成员
head = 1
legs = 2
language = '汉语'
constructor(uname, age) {
//构造函数用于接收参数,初始化
//在new的时候就会执行
this.uname = uname
this.age = age
}
say() {
console.log('说话!!!')
}
eat() {
console.log('吃饭!!!')
}
//静态成员
static skin = 'yellow'
static language = '汉语'
static sey() {
console.log('说话')
}
}
class Son extends Person {
constructor(eye, uname, age) {
super(uname, age) // super 关键字
this.eye = eye
}
sayName() {
console.log('hello javascript')
}
}
let obj = new Son(2, '张三', 22)
console.log(obj)
obj.eat() // 吃饭!!!
控制台打印
控制台输出可以看见 Son 自身的属性以及方法,还有继承于 Person 的属性方法,还有通过 static 关键字定义的静态成员
小伙伴们今天就分享到这里(手动呲牙)