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面向对象编程高速构建继承关系之整合原型链的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象编程之继承与多态详解

JavaScript 面向对象的编程 类的继承

javaScript设计模式之面向对象编程(object-oriented programming,OOP)--寄生组合式继承

javascript面对对象编程 之继承

三. python面向对象

第二小节之面向对象下