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

释放双眼,带上耳机,听听看~!

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

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

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

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

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
1//形状
2function Shape(){
3   this.name = 'shape';
4   this.toString = function() {return this.name;};
5}
6//2d形状
7function TwoDShape(){
8   this.name = '2D shape';
9}
10//三角形
11function Triangle(side, height) {
12  this.name = 'Triangle';
13  this.side = side;
14  this.height = height;
15  this.getArea = function(){return this.side * this.height / 2;};
16}
17//继承的特征1.子对象拥有父对象的属性和方法
18TwoDShape.prototype = new Shape();
19Triangle.prototype = new TwoDShape();
20//修复
21TwoDShape.prototype.constructor = TwoDShape;
22Triangle.prototype.constructor = Triangle;
23
24
25var my = new Triangle(5, 10);
26
27alert(my.toString());//自己没有toString方法,继承而来
28alert(my.constructor);
29/*继承特征2:子对象“是一个”父对象,具备“is-a”的特点,
30如人是动物,那么人就是动物的子类,体现在对象上,一个人必然有一个指向动物实例的引用*/
31alert(my instanceof TwoDShape);//有继承的特性
32alert(my instanceof Shape);
33

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C/C++内存泄漏及检测

2022-1-11 12:36:11

安全漏洞

Tengine-1.4.6发布,修复CVE-2013-2070安全漏洞

2013-5-14 11:12:22

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索