JavaScript中获得一个对象的方法
-
对象直接量
var o1 = { name: "tom" };
-
构造函数
var o2 = new Object();
-
使用
Object.create()
var o3 = Object.create(null);
差别在哪里
使用对象直接量和构造函数创建的对象,本质上是一样的,即o1和o2的原型是同一个object,而这个object的原型是null。
o1.__proto__ === o2.__proto__ // true,即指向同一个对象
o1.__proto__.__proto__ // null,即位于原型链顶端的是null
而第三种方式创建的对象是“干净的”,即没有任何属性和方法。使用console.dir()也无法打印其属性,其原型则是为参数null。但是在Chrome控制台中,会显示其原型是undefined。
console.dir(o3) // no properties
o3.__proto__ // undefined