JavaScript面向对象编程高速构建继承关系之整合原型链
Posted zsychanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript面向对象编程高速构建继承关系之整合原型链相关的知识,希望对你有一定的参考价值。
前面我们铺垫了非常多细节。是为了让大家更加明晰prototype的使用细节;
如今能够将前面的知识整合起来,写一个函数用于高速构建基于原型链的继承关系了:
function extend(Child, Parent) { var F = function(){}; F.prototype = Parent.prototype; Child.prototype = new F(); Child.prototype.constructor = Child; Child.uber = Parent.prototype; }
使用起来也特别简单:
function Shape(){} // augment prototype Shape.prototype.name = ‘shape‘; Shape.prototype.toString = function(){ var result = []; if (this.constructor.uber) { result[result.length] = this.constructor.uber.toString();//super.toString() } result[result.length] = this.name; return result.join(‘, ‘); }; function TwoDShape(){} //先继承。再增强 extend(TwoDShape,Shape); TwoDShape.prototype.name = ‘2D shape‘; function Triangle(side, height) { this.side = side; this.height = height; } extend(Triangle,TwoDShape); Triangle.prototype.name = ‘Triangle‘; //使用继承而来的toString方法 alert(new Triangle(10,5).toString());
以上是关于JavaScript面向对象编程高速构建继承关系之整合原型链的主要内容,如果未能解决你的问题,请参考以下文章
javaScript设计模式之面向对象编程(object-oriented programming,OOP)--寄生组合式继承