原型式继承

2018-06-02  本文已影响0人  樱木夜访流川枫

设计思想:没有使用严格的构造函数,必须有一个对象可以作为另一个对象的基础,将源对象传入Object.create()函数,再修改目标对象

核心代码:

function object(sourceObj) {
  function Man4() {};
  
  Man4.prototype = sourceObj;

  return new Man4();
}

ES5添加了Object.create()实现了这里object()的功能,规范了原型式继承,
该方法接收两个参数:
1、新对象的原型对象;
2、新对象的定义额外属性的对象
Object.create()方法的第二个参数与Object.defineProperty()的第二个参数格式相同

代码:

var  Man4 = Object.create(Person4, {
   name: {
      value:
      enumerabel:
  }
})

// 以这种方式指定的任何属性都会覆盖原型对象的同名属性

适用场景:让一个对象与另外一个对象保持相似
缺点:与原型链继承的缺点相同

上一篇 下一篇

猜你喜欢

热点阅读