{}、new Object()、Object.create的区别
主要区别
{} 和 new Object() 除了本身创建的对象,都继承了 Object 原型链上(Object.protoperty)的属性和方法,如:toString();当创建的对象相同时,{} 等价于 new Object();
Object.create() 是创建对象继承到原型链上,而本身没有继承 Object.prototype 的属性和方法。
终上测试结论:
- {}、new Object() 创建的新对象的原型指向的是 Object.prototype
- Object.create() 创建的新对象并没有新建的属性和方法,而原型指向的对象中的属性和方法
空对象创建
终上测试结论:
- {}、new Object() 创建的不是一个干净的对象,继承了内置对象 Object
- Object.create(null) 创建的是一个干净的对象,没有原型。