欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-31 15:55:22
本文实例讲述了js类的继承定义与用法。分享给大家供大家参考,具体如下: 如何实现类的继承呢? 有如下2个构造函数: function peopleclass(...

本文实例讲述了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测试上述代码运行效果。

更多关于javascript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结

希望本文所述对大家javascript程序设计有所帮助。