创建一个类:
class Person {
constructor(name,sex) {
this.name = name;
this.sex = sex;
}
}
使用class关键字来创建,里面包含一个特殊的方法:constructor(),它是类的构造函数,这种方法用于创建和初始化一个由class创建的对象。其中constructor()中的都是实例属性,只有实例才能访问。
let a = new Person("小王", "男");
与function相比,class先声明后使用,不能重复定义,不存在变量提升,且class调用必须通过new 关键字。
class的静态属性
静态方法调用直接在类上进行,只能通过类名调用,可被继承,并且定义的方法的this指向类而不是实例。
class Info {
static info = function () {
console.log("这是myClass的静态属性");
}
}
let a = new Info();
Info.info();//可以调用
a.info();//报错
class的继承
class通过关键字extends实现继承。
class Father {
constructor(name, age) {
this.nane = name;
this.age = age;
}
holle() {
console.log('holle')
}
}
class Son extends Father {
}
let son = new Son();
son.hello();//hello
super
class Father {
constructor(name, age) {
this.name = name;
this.age = age;
}
hello() {
console.log('hello');
}
static speak() {
console.log('speak');
}
}
class Son extends Father {
hello() {
super.hello(); // hello
}
static speak() {
super.speak(); // speak
}
}
const a = new Son()
a.hello()
Son.speak()