`
webcode
  • 浏览: 5947512 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JavaScript实现类的继承

 
阅读更多
下面是常用的js类继承的方式,我们继承一下上篇文章中的Person类:
function Person(name, age, email){
	this.name = name;
	this.age = age;
	this._email = email;
}

function _Person_show_me(){
	alert('我叫' + this.name + ',我' + this.age + '岁了,我的email是' + this._email);
}

Person.prototype.show_me = _Person_show_me;

function Student(name, age, email, score){
	Person.call(this, name, age, email);
	this.score = score;
}

function _Student_show_score(){
	alert("我的分数是:" + this.score);
}

Student.prototype = new Person();
Student.prototype.show_score = _Student_show_score;

var he = new Student('小何', 28, 'baijun.he@163.com', 80);
he.show_me();
he.show_score();


  1. 使用了js的call()方法调用父类的构造函数。第一个参数是this,当实例化Student时,这个this就表示he这个对象。后面的参数就是调用的函数Person的参数。
  2. Student.prototype = new Person();通过这个语句把Person类的属性和方法传递给Student类。这里只传递了方法,属性我们通过上面的call方法定义了。
  3. 为什么在new Person();中没有传递参数呢?这是原型链的标准做法。要确保构造函数没有任何参数。我们通过call方法实现参数的赋值。
  4. Student.prototype.show_score = _Student_show_score;必须在Student.prototype = new Person();后面调用,因为执行Student.prototype = new Person();时Student的prototype属性被替换成了新的对象,以前的属性和方法会被删除。
分享到:
评论

相关推荐

    javascript 原生态js类继承实现的方式

    而实例则是类的一个具体实现。 我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象...

    Javascript编程 类的继承及封装:Class

    也就是说,并未在类继承时实现了真正意义的封装。 笔者历经多年javascript的开发,痛彻体会javascript面向对象编程的不便性,精心制作了一个类的定义与继承功能的js,实现了在javascript中对类的定义、继承、封装...

    javaScript类继承经典资料

    继承是面向对象开发的又一个重要概念,它可以将现实生活的概念对应到程序逻辑中。...在JavaScript中没有专门的机制来实现类的继承,但可以通过拷贝一个类的prototype到另外一个类来实现继承等扥,看资料

    JavaScript实现多重继承的方法分析

    本文实例讲述了JavaScript实现多重继承的方法。分享给大家供大家参考,具体如下: 1. 定义一个空的父类构造函数,然后通过prototype的方式为该父类定义属性和方法 2. 定义一个空的子类的构造函数,然后将子类的原型...

    学习javascript面向对象 javascript实现继承的方式

    本文实例为大家介绍了javascript实现继承的6种方式,分享给大家供大家参考,具体内容如下 1、【原型链继承】实现的本质是重写原型对象,代之以一个新类型的实例。实际上不是SubType的原型的constructor属性被重写了...

    JavaScript原型式继承实现方法

    主要介绍了JavaScript原型式继承实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    【JavaScript源代码】JavaScript继承的三种方法实例.docx

     继承 继承: 首先继承是一种关系,类(class)与类之间的关系,JS中没有类,但是可以通过构造函数模拟类,然后通过原型来实现继承。  继承也是为了数据共享,js中的继承也是为了实现数据共享  我们可以联想到原型...

    Javascript 类的继承实现代码

    JavaScript中类的学习,从基本类继承过来方法。

    Javascript中类式继承和原型式继承的实现方法和区别之处

    其它的面向对象程序设计语言都是通过关键字来解决继承的问题。但是javascript中并没有定义这种实现的机制。接下来通过本文给大家介绍Javascript中类式继承和原型式继承的实现方法和区别,需要的朋友可以参考下

    JavaScript类和继承 prototype属性

    我们已经在第一章中使用prototype属性模拟类和继承的实现。 prototype属性本质上还是一个JavaScript对象。 并且每个函数都有一个默认的prototype属性。 如果这个函数被用在创建自定义对象的场景中,我们称这个函数为...

    再论Javascript的类继承

    说到Javascript的类继承,就必然离不开原型链,但只通过原型链实现的继承有着不少缺陷。

    JavaScript模拟实现继承的方法

    我们都知道,在JavaScript中只能模拟实现OO中的”类”,也就意味着,在JavaScript中没有类的继承。我们也只能通过在原对象里添加或改写属性来模拟实现。 先定义一个父类, //父类 function ParentClass() { this....

    ES6 javascript中Class类继承用法实例详解

    本文实例讲述了ES6 javascript中Class类继承用法。分享给大家供大家参考,具体如下: 1. 基本用法 Class 之间可以通过extends关键字实现继承, 这比 ES5 的通过修改原型链实现继承, 要清晰和方便很多。 class ...

    JavaScript类的继承多种实现方法

    主要介绍了JavaScript类的继承多种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    JavaScript 继承的实现

    正因为JavaScript本身没有完整的类和继承的实现,并且我们也看到通过手工实现的方式存在很多问题, 因此对于这个富有挑战性的任务网上已经有很多实现了

    Javascript类的继承,使用this.callParent调用超类方法

    NULL 博文链接:https://zhangdaiping.iteye.com/blog/1571381

Global site tag (gtag.js) - Google Analytics