您的位置:首页 > Web前端 > JavaScript

js类的继承

2017-02-07 19:41 232 查看
如何实现类的继承呢? 

有如下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中继承的实现。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: