JavaScript

超轻量级php框架startmvc

js类的继承定义与用法分析

更新时间:2020-09-01 10:12:01 作者:startmvc
本文实例讲述了js类的继承定义与用法。分享给大家供大家参考,具体如下:如何实现类的

本文实例讲述了js类的继承定义与用法。分享给大家供大家参考,具体如下:

如何实现类的继承呢?

有如下2个构造函数:


function PeopleClass(){
 this.type = "人";
};
PeopleClass.ptototype = {
 getType:function(){
 alert("这是一个人");
 }
};
function StudentClass(name,sex){
 this.name = name;
 this.sex = sex;
};

如何让『学生』对象来继承『人』对象呢?可使用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); //[人]

从运行的结果来看,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(); //[这是一个人]

以上就是js中继承的实现。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

js 继承