var o1 = Object.create(null);
var o2 = {};
var o3 = new Object();
console.log(o1);
console.log(o2);
console.log(o3);
结果如下:
由此可见,Object.create(null)方法是继承自null的,没有__proto__。具体比较阮大叔写的很清楚了:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html
Object.create()
方法使用指定的原型对象和其属性创建了一个新的对象。
这是mozilla网站的官方解释。Object.create()
参见:mozilla网站
Object.create(proto, [ propertiesObject ])
proto:必须。
必须是对象(包括null),否则抛出异常。
propertiesObject:可选。
该参数对象不能是 undefined
,另外只有该对象中自身拥有的可枚举的属性才有效,也就是说该对象的原型链上属性是无效的。