码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript面向对象编程(6)利用原型链实现继承

时间:2014-12-08 21:23:48      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:javascript   面向对象编程   js   prototype   

继承是面向对象的特性之一,继承的主要目的就是为了重用。子类能复用父类的属性或者行为,可以极大地简化子类,避免重复定义。

继承的特征1.子对象拥有父对象的属性和方法

继承特征2:子对象“是一个”父对象,具备“is-a”的特点,
如人是动物,那么人就是动物的子类,体现在对象上,一个人必然有一个指向动物实例的引用

子类的prototype指向父类的一个实例,就完成了继承,因为子类的实例上具备了父类实例的属性和行为。

Java中子类实例有super关键字指向父类实例,在继承上,所有面向对象语言都差不多的。


//形状
function Shape(){
	this.name = 'shape';
	this.toString = function() {return this.name;};
}
//2d形状
function TwoDShape(){
	this.name = '2D shape';
}
//三角形
function Triangle(side, height) {
	this.name = 'Triangle';
	this.side = side;
	this.height = height;
	this.getArea = function(){return this.side * this.height / 2;};
}
//继承的特征1.子对象拥有父对象的属性和方法
TwoDShape.prototype = new Shape();
Triangle.prototype = new TwoDShape();
//修复
TwoDShape.prototype.constructor = TwoDShape;
Triangle.prototype.constructor = Triangle;


var my = new Triangle(5, 10);

alert(my.toString());//自己没有toString方法,继承而来
alert(my.constructor);
/*继承特征2:子对象“是一个”父对象,具备“is-a”的特点,
如人是动物,那么人就是动物的子类,体现在对象上,一个人必然有一个指向动物实例的引用*/
alert(my instanceof TwoDShape);//有继承的特性
alert(my instanceof Shape);


JavaScript面向对象编程(6)利用原型链实现继承

标签:javascript   面向对象编程   js   prototype   

原文地址:http://blog.csdn.net/zhengwei223/article/details/41809057

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!