__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型
(1)、构造函数的原型对象也是对象,所以它有自己的构造函数,相对应的构造函数也有自己的原型对象
(2)、构造函数也是对象,也有自己的自己的构造函数,相对应的构造函数也有自己的原型对象
构造函数 Person 和 对象 p
(1)、p.__proto__ == Person.prototype
(2)、p.__proto__.__proto__ (原型对象.__proto__) == object.prototye
原型对象.__proto__.constructor == Object
(3)、Object.prototype.__proto__ == null
(4)、Person.__proto__.constructor == Function
Person.__proto__ == Function.prototype
(5)、Function.prototype.__proto__ == Object.prototype
Function.prototype.__proto__.constructor == Object
(6)、Function.__proto__ == Function.prototype
Function.__proto__ .constructor == Function
(7)、Object.__proto__ == Function.prototype
Object.__proto__.constructor == Function
原型链图:
2、Object.create(obj)
Object.create(obj):创建一个新对象,创建的对象.__proto__ == 使用的现有的对象
let obj = Object.create(Object)
obj.__proto__ == Object
obj.prototype == Object.prototype
let obj = Object.create(Object.prototype)
obj.__proto__ == Object.prototype
let objArray = Object.create(Array)
obj.__proto__ == Array
obj.prototype == Array.prototype
let objArray = Object.create(Array.prototype)
obj.__proto__ == Array.prototype
如果有哪里地方写错,记得留言