Object.create
这个方法,不是返回已经设置了指定 __proto__
的对象嘛。
如果这样调用
let obj = Object.create(null);
此时执行
console.log(obj.__proto__) // undefined
返回的是 undefined
而实际上,通过调用 Object.getPrototypeOf(obj)
返回的就是 null
而如果执行
let o = Object.create({});
此时执行
console.log(o.__proto__)
返回的就是 {}
这是 Object.create
故意这样子设计的吗... 对于 Object.create(null)
而言,不能直接通过 __proto__
来访问??
__proto__
是定义在Object.prototype
的一个 getter/setter 。你现在原型对象设成了null
,他就不存在了。于是打印undefined