原型和原型链
// 创建一个 Person 类
class Person {
// 构造器方法
constructor(name, age) {
// 构造器中的this 是谁? --- 类的实例对象(新new出来的那个实例)
this.name = name
this.age = age
}
// 一般方法
// speak 方法放在那里了? ---类的原型对象上, 供实例使用
// 通过 Person 实例调用 speak时, speak 中的this 就是 Person 实例
speak() {
console.log(this);
console.log(`我叫${this.name}, 年龄${this.age}`);
}
}
// 创建一个Person类的实例
const p1 = new Person('tom', 18)
console.log(p1);
const p2 = new Person('jerry', 19)
console.log(p2);
// 创建一个Student类, 继承于 Person 类
class Student extends Person {
// 当一个类继承了另外一个类, 并且写了constructor 的时候, 必须有 super, 否则报错, super 帮你调用父类的构造器
constructor(name, age, grade) {
super(name, age)
this.grade = grade
}
// 重写从父类继承过来的方法
speak() {
console.log(this);
console.log(`我叫${this.name}, 年龄${this.age}, 我读${this.grade}年级`);
}
}
const s1 = new Student('张三', 15, '高一')
console.log(s1)
console.log(s1.speak())


浙公网安备 33010602011771号