官方描述
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