万物皆对象,每个对象都有一个原型__proto__
构造函数有原型对象prototype
创建一个构造函数
function Star(name, age) {
this.name = name
this.age = age
}
用new关键字创建一个构造函数的实例
let ww = new Star('李四', 29)
//构造函数上有原型对象prototype,构造函数实例上有原型__proto__
//构造函数的原型对象prototype等于构造函数实例的原型__proto__
console.log(Star.prototype === ww.__proto__) //true
//构造函数实例对象的原型对象prototype也有原型__proto__,它的原型指向Object的原型对象prototype
console.log(Star.prototype.__proto__ === Object.prototype)
Object的原型对象prototype上也有原型__proto__,它的原型指向空
console.log(Object.prototype.__proto__ === null)
构造函数的原型对象prototype上有原型__proto__,它的原型指向Object的原型对象prototype,Object的原型对象prototype上也有原型__proto__,它的原型指向null,这样一级一级往上查找就形成了原型链。