一、创建对象
var obj = new Object();//new调用构造函数Object
var obj1 = {//对象字面量
name:'lll',
};
var p = {
name:'lll',
height:'160',
};
var obj2 = Object.create(p);//使用Object.create()方法
var obj3 = Object.create(null);
二、区别
通过如上三种方式分别创建对象,那么他们之间有什么区别呢?
1、Object.create() 必须接收一个对象参数,创建的新对象的原型指向接收的参数对象
而通过Object.create(null)创建的对象是一个干净的对象,也就是没有原型,不继承Object原型链上的属性
2、new Object()创建的对象是 Object的实例,原型永远指向Object.prototype,{}创建的对象与其一样都会继承Object对象的所有属性
三、Object.create(null)的应用场景
可以创建一个干净且高度可定制的对象当做数据字典,进行循环取用,可以提高循环效率。
这个时候如果对象有原型链,那便会在循环的时候去循环它的各个属性和方法,效率则会降低