js类的继承
2017-02-07 19:41
232 查看
如何实现类的继承呢?
有如下2个构造函数:
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
如何让『学生』对象来继承『人』对象呢?可使用
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
从运行的结果来看,StudentClass继承了PeopleClass的属性『人』。
而方法的继承,只要循环使用父对象的prototype进行复制,即可达到继承的目的。方法如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
以上就是js中继承的实现。
有如下2个构造函数:
function PeopleClass(){ this.type = "人"; }; PeopleClass.ptototype = { getType:function(){ alert("这是一个人"); } }; function StudentClass(name,sex){ this.name = name; this.sex = sex; };1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
如何让『学生』对象来继承『人』对象呢?可使用
apply方法将父对象的构造函数绑定在子对象上,代码如下:
function PeopleClass(){ this.type = "人"; }; PeopleClass.ptototype = { getType:function(){ alert("这是一个人"); } }; function StudentClass(name,sex){ PeopleClass.apply(this,arguments); this.name = name; this.sex = sex; }; var stu = new StudentClass("lily","男"); alert(stu.type); //[人]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
从运行的结果来看,StudentClass继承了PeopleClass的属性『人』。
而方法的继承,只要循环使用父对象的prototype进行复制,即可达到继承的目的。方法如下:
function StudentClass(name,sex){ PeopleClass.apply(this,arguments); var prop; for(prop in PeopleClass.prototype){ var proto = this.constructor.prototype; if(!proto[prop]){ proto[prop] = PeopleClass.prototype[prop]; } proto[prop]["super"] = PeopleClass.prototype; } this.name = name; this.sex = sex; }; var stu = new StudentClass("lily","女"); alert(stu.type); //[人] stu.getType(); //[这是一个人]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
以上就是js中继承的实现。
相关文章推荐
- js类(继承)(一)
- js类(继承)(二)
- js类,静态类,方法属性继承!
- JS类继承常用方式发展史
- js类的继承
- JS类继承
- JS类继承
- JS类与继承
- js类继承
- 类的size & 私有成员的继承方式
- 构造方法的继承实例
- python 多继承(新式类) 四
- C#中事件的继承
- C# 继承
- 07.——继承,重写,方法的调用 一
- Welcome-to-Swift-13继承(Inheritance)
- Python--类的创建与继承
- 捋一捋js面向对象的继承问题
- Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题
- 集成框架支持js类型多继承