用构造函数new一个对象
看下面的代码:

查看p1:

我们创建了构造函数Person,那么在new Person的过程中到底发生了什么?
===
new一个构造函数,相当于实例化一个对象
1. 创建对象p1, p1 = {}
2. 对象p1具有_proto_属性,该属性指向一个对象:构造函数Person的原型对象(Person.prototype)
3. p1作为this调用构造函数Person,设置p1的属性和方法。
补充:
(1)从此对象p1与构造函数再无联系,对构造函数增加其他属性或方法不会影响已实例化的p1对象。
(2)此时p1具有name和age属性,也拥有构造函数Person的原型对象的所有成员(这里并没有成员)。
对象字面量

对象字面量构造的对象,__proto__指向Object.prototype

从这里也可以看出,Object也是一个函数,Object、Function都是是js自带的函数对象。验证:

Object.create()

p3的_proto_指向p2
网友评论