14.1 三者的区别
- new的方式创建对象和通过字面量创建有什么区别
- 字面量和
new
关键字创建的对象是Object
的实例,原型指向Object.prototype
,继承内置对象Object
Object.create(arg, pro)
创建的对象的原型取决于arg
,arg
为null
,新对象是空对象,没有原型,不继承任何对象;arg
为指定对象,新对象的原型指向指定对象,继承指定对象
14.2 Object.create()
Object.create()
方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__
Object.create(proto,[propertiesObject])
proto
必填参数,新创建对象的原型对象(一个对象或者null
)
注意:如果为
null
,那新对象就彻彻底底是个空对象,没有继承Object.prototype
上的任何属性和方法,如hasOwnProperty()、toString()
等。
propertiesObject
可选。需要传入一个对象,该对象指定要添加到新对象上的可枚举的属性(即其自定义的属性和方法,可用hasOwnProperty()
获取的,而不是原型对象上的)的描述符及相应的属性名称。