官方描述

Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。

例子

var arr = new Array(3);
var p = Object.create(arr); // p.__proto__ = arr
console.log(p instanceof Array); // true
console.log(p.__proto__); // arr
console.log(p.length); // 3

远古时期,没有 Object.create()

// 接收一个对象,使返回对象的隐式原型 __proto__ 指向传入的参数对象
function myObjectCreate(obj){
    var f = function(){};
    f.prototype = obj;
    var ret = new f();
    return ret;
}
var arr = new Array(3);
var p = myObjectCreate(arr); // p.__proto__ = arr
console.log(p instanceof Array); // true
console.log(p.__proto__); // arr
console.log(p.length); // 3