class Human {
constructor(name) {
this.name = name;
}
walk() {
console.log(`${this.name}, walk to the shop`);
}
}
class Cooker extends People{
constructor(name, food) {
super(name);
this.food = food;
}
cook() {
console.log(` ${this.name} 做了 ${this.food} 给客人`);
}
}
const someone = new Cooker('Lucy', 32);
注:上图中 变量名请自行对应
简单来说就是 :
1. 子类的__proto__(隐式原型)指向 父类的 prototype(显式原型) ;
2. 每一个父类有其自己的显式原型, 显式原型包含了可以让子类集成的方法和属性
3. Object 的 隐式原型 最终指向 null, 作为终结
4. 引用类型的 隐式原型 最终都会指向 Object
Object instanceof Object // true
Function instanceof Object // true
Array instanceof Object // true
instanceof 是依据原型链来查找的,但是 Object intanceof null 会报错,这是一种特殊情形。