基本语法
{
// 基本定义和生成实例
class Parent {
// 定义构造函数
constructor (name = 'LiMing') {
this.name = name
}
}
// 生成实例
let parent = new Parent('Helzeo')
console.log(parent) // {name: "Helzeo"}
}
类的继承
{
// 基本定义和生成实例
class Parent {
// 定义构造函数
constructor (name = 'LiMing') {
this.name = name
}
}
// 生成实例
let parent = new Parent('Helzeo')
console.log(parent) // {name: "Helzeo"}
// 类的继承
class Child extends Parent {
constructor (name = 'child name') {
super(name) // 子类覆盖父类 super 必须要放在第一行
// 子类定义自身属性和方法一定要在 super 之后
this.type = 'child'
}
}
let child = new Child('chile param')
console.log(child)
}
getter 和 setter
{
// getter 和 setter
class Parent {
// 定义构造函数
constructor (name = 'LiMing') {
this.name = name
}
get longName() { // 注意这里是属性, 不是方法
return this.name + 'Lee'
}
set longName(value) { // 注意这里是属性, 不是方法
this.name = value
}
}
let parent = new Parent()
console.log('getter', parent.longName) // LiMingLee
parent.longName = 'Helzeo'
console.log('setter', parent.longName) // HelzeoLee
}
静态方法 static
{
// 静态方法 关键字 static
class Parent {
// 定义构造函数
constructor (name = 'LiMing') {
this.name = name
}
// 静态方法, 通过类来调用, 而不是实例来调用
static tell() {
console.log('tell')
}
}
Parent.tell()
}
静态属性
{
// 静态方法 关键字 static
class Parent {
// 定义构造函数
constructor (name = 'LiMing') {
this.name = name
}
}
// 定义静态属性没有关键字, 直接在类上赋值即可
Parent.type = 'test'
console.log('静态属性', Parent.type)
}