速记,速记,6句话帮你记住Class 和 原型链
class Animal {}
let dog = new Animal
类、类的实例、Function 都是 Object的实例
console.log(dog instanceof Animal) //true
console.log(Animal instanceof Function) //true
console.log(Function instanceof Object) //true
console.log(Animal instanceof Object) //true
实例.proto === 类.prototype
console.log(dog.__proto__ === Animal.prototype) //true
console.log(Animal.prototype.__proto__ === Object.prototype) //true
console.error(Animal.prototype.__proto__.__proto__ === Object.prototype.__proto__) //true
[类.prototype] 可以把它看作类的一个特殊实例,其构造函数指向类本身 即 [类.prototype.constructor === 类]
console.log(dog.__proto__.constructor) //Animal
console.log(Animal.prototype.constructor) //Animal
console.log(Animal.prototype.__proto__.constructor) //ƒ Object() { [native code] }
console.log(Object.prototype.constructor) //ƒ Object() { [native code] }
console.log(Animal.prototype.__proto__.constructor === Object.prototype.constructor) //true
原型尽头 Object.prototype.proto === null
console.log(dog.__proto__.constructor) //Animal
console.log(Animal.prototype.constructor) //Animal
console.log(Animal.prototype.__proto__.constructor) //ƒ Object() { [native code] }
console.log(Object.prototype.constructor) //ƒ Object() { [native code] }
console.log(Animal.prototype.__proto__.constructor === Object.prototype.constructor) //true