javaScript设计模式之面向对象编程(object-oriented programmin
发布时间:2020-12-14 23:54:45 所属栏目:资源 来源:网络整理
导读:组合式继承:将 类式继承 同 构造函数 继承组合使用,但是存在一个问题,子类不是父类的实例,而子类的原型式父类的实例,所以才有了寄生组合式继承。 意思就是说,寄生就是寄生式继承,寄生式继承就是依托于原型继承,原型继承又与类式继承差不多,所以另外
组合式继承:将类式继承同构造函数继承组合使用,但是存在一个问题,子类不是父类的实例,而子类的原型式父类的实例,所以才有了寄生组合式继承。 意思就是说,寄生就是寄生式继承,寄生式继承就是依托于原型继承,原型继承又与类式继承差不多,所以另外一种继承模式应该是构造函数继承。当然子类不是父类的实例的问题是由于类式继承引起的。 说道这,我不得不说一下,道格拉斯大哥对寄生式继承的改造
p =
p.constructor =
subClass.prototype =
我们需要的是继承仅仅是父类的原型,不再需要调用父类的构造函数。 测试一下
.name =.colors = ['red','blue','green'
SuperClass.prototype.getName =
SuperClass.call(
.time =
SubClass.prototype.getTime =
instance1 = SubClass('js book',2014 instance2 = SubClass('css book',2013);
我们首先创建父类,以及父类的原型方法, 然后创建子类,并在构造函数中实现构造函数式继承, 然后又通过寄生式继承了父类原型, 最后又对子类添加一些原型方法。 instance1.colors.push('black'
console.log(instance2.colors);
instance1.getName();
instance2.getTime();
注意:子类再想添加原型方法必须通过prototype对象,通过点语法的形式一个一个添加方法,否则会被直接赋予对象就会覆盖掉从父类原型继承的对象。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |