通过class关键字创建类
- 类名习惯性定义首字母大写
- 类里面有个constructor函数,可以接受传过来的参数,同时返回实例对象
- constructor函数只要new生成实例时,就会自动调用这个函数,如果我们不写这个函数也会自动生成这个函数
- 生成实例 new不能省略
类中继承
- 继承中的属性或者方法查找原则:就近原则
- 继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的
- 继承中,如果子类中没有,就去查找父类有没有这个方法,如果有就先执行父类的这个方法(就近原则)
- 注意:子类在构造器中使用super,必须放到this前面(必须先调用父类的构造方法,再使用子类构造方法)
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) {
super(x, y);
this.x = x;
this.y = y;
}
subtract() {
console.log(this.x - this.y);
}
}
var son = new Son(5, 3);
son.subtract();
son.sum();
类中this指向问题
- constructor 里面的this指向实例对象,方法里面的this指向这个方法的调用者