Object.create() 方法使用指定的原型对象和属性创建一个新对象。
在幕后,它执行以下操作:
Object.create = (function() {
var Temp = function() {};
return function (prototype) {
if (arguments.length > 1) {
throw Error('Second argument not supported');
}
if (typeof prototype != 'object') {
throw TypeError('Argument must be an object');
}
Temp.prototype = prototype;
var result = new Temp();
Temp.prototype = null;
return result;
};
})();
所以正确的用法是:
var Object3 = Object.create(Object.prototype);
或者,如果您想让您的示例工作:
Object.getPrototypeOf(Object.getPrototypeOf(Object3)) === Object.prototype // true
原型链在这里发挥作用:
console.dir(Object3)
-> __proto__: Object (=== Your Object Literal)
-> __proto__: Object (=== Object.prototype)