Object.create()
方法的作用:创建一个新对象,使用现有的对象来提供新创建的对象的__proto__(会返回一个新对象,带着指定的原型对象和属性)。
分析
默认情况下,js中对象的隐式原型__proto__
指向其构造函数的显示原型prototype
(这里的指向可以理解为属性与值的关系)
// 字面量创建对象
let obj1 = {
}
obj1.__proto__ === Object.prototype; // true
// 内置构造函数创建对象。等价于new Object();
let obj2 = Object();
obj2.__proto__ === Object.prototype; // true
// 自定义构造函数创建实例对象
let Ctr = function(){
};
let obj3 = new Ctr();
obj3.__proto__ === Ctr.prototype; // true
而经过Object.create()
方法创建的对象可以指定其隐式原型为一个函数或者对象。
// 首先自定义一个构造函数并初始化一个实例对象。