首页 > 代码库 > JavaScript面向对象编程(9)快速构建继承关系之整合原型链
JavaScript面向对象编程(9)快速构建继承关系之整合原型链
前面我们铺垫了很多细节,是为了让大家更加明晰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面向对象编程(9)快速构建继承关系之整合原型链
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。