ES6提供了更接近传统语言的写法,引入了Class类这个概念,作为对象的模板。通过Class关键字,可以定义类,基本上,ES6的class可以看作只是一个语法,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更面向对象编程的语法而已。
class类的基本用法
基本语法: class 类名 { constructor{ } }
class Student {
// 构造方法 名字不能修改
constructor(name,age) {
this.name = name
this.age = age
}
// 添加方法
// 方法必须使用该语法
fun() {
console.log("我是学生")
}
}
let zs = new Student("张三",18)
console.log(zs)
class类静态成员
static
class Student {
// 静态属性
static name = "张三"
static fun() {
console.log("我是学生")
}
}
let zs = new Student()
console.log(zs.name) //undefined
console.log(Student.name) //张三
为什么我们zs.name打印undefined呢?
因为static属性方法只属于类,不属于实例对象
class类继承
class Student {
// 构造方法 名字不能修改
constructor(name, age) {
this.name = name
this.age = age
}
// 添加方法
// 方法必须使用该语法
fun() {
console.log("我是学生")
}
}
// 类继承必须要写extends
class Student1 extends Student {
// 构造方法
constructor(name,age,id,tel){
// super
super(name,age) //Student.call(this,name,age)
this.id = id
this.tel = tel
}
learn() {
console.log("学习")
}
}
let zs = new Student1("张三",18,10,123456)
console.log(zs)
感谢大家的阅读,本人文笔有限,如有不对的地方,可以向我指出,感谢大家!