js是一个面向对象的语言,所以具备一些面向对象的方式----------例如继承。接下来介绍5种js的继承方式.注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。

1.采用call方法改变函数上下文实现继承,原理是改变函数内部的函数上下文this,使它指向传入函数的具体对象

具体代码如下

Father.call(child,child.getName) 的意思就是使用 Father对象代替child对象,child中就有 Father的所有属性和方法了,child对象就能够直接调用 Father的方法以及属性了.

2.采用apply方法改变函数上下文实现继承,原理是改变函数内部的函数上下文this,使它指向传入函数的具体对象

3.采用原型链的方式实现继承,实现原理是:使子类原型对象指向父类的实例以实现继承,即重写类的原型

这样子类就具有了父类的属性和方法,完美继承

4.使用对象冒充实现继承(该种实现方式可以实现多继承)实现原理:让父类的构造函数成为子类的方法,然后调用该子类的方法,通过this关键字给所有的属性和方法赋值

子类具有的方法和属性有   可以看出子类继承了父类的方法和属性

5.采用混合模式实现继承

转载于:https://www.cnblogs.com/lyn940208/p/6082999.html

JavaScript 实现继承的5种方式相关推荐

  1. javascript实现继承的七种方式(from 红宝书)

    继承是面向对象语言的基础概念,一般OO语言支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.ECMAScript中函数没有签名,因此无法实现接口继承.ECMAS ...

  2. JavaScript实现继承的几种方式

    1.原型链 基本思想:利用原型让一个引用类型继承另外一个引用类型的属性和方法. 构造函数,原型,实例之间的关系:每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而实例都包含一个指向原 ...

  3. JS 总结之原型继承的几种方式

    在之前的总结中,我们详细分析了原型<JS 总结之原型>,原型很大作用用于模拟继承,这一次,我们来聊原型继承的几种方式. function Person (age) {this.age = ...

  4. 继承有几种方式,分别是什么,想要实现继承可以使用哪些方法

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [继承有几种方式 ...

  5. Django中Model继承的三种方式

    Django中Model继承的三种方式 Django中Model的继承有三种: 1.抽象继承 2.多表继承 3.proxy model(代理model) 1.抽象继承 第一种抽象继承,创建一个通用父类 ...

  6. JavaScript事件处理程序的3种方式

    最近这段时间因为每天要修改网站,为网站做特效,所以看了很多的js接触事件,自己只会使用一小部分,有时用的时候也比较混乱,现在系统的整理了一下,首先跟大家在马海祥博客上跟大家分享的是JavaScript ...

  7. Javascript事件绑定的几种方式

    Javascript事件绑定的几种方式 来源:http://www.cnblogs.com/rainman/archive/2009/02/11/1387955.html 上篇文章讲到了事件绑定的3中 ...

  8. 可以实现继承的几种方式

    继承的几种方式 说起继承,又是一个老生常谈的问题了.今天来讲讲继承的几种方法以及他们的优缺点吧. 源码地址:点击这里 一.原型链继承 原型链继承:通过原型将一个引用类型继承另一个引用类型的属性和方法. ...

  9. JavaScript笔记 - 对象继承的几种方式

    1)对象冒充 2)call方式 3)apply方式 4)原型链 5)混合方式 1)对象冒充 Js代码 function People(name, age) { this.name = name; th ...

最新文章

  1. Windows搭建wnmp
  2. [Swift]LeetCode2. 两数相加 | Add Two Numbers
  3. 好久不碰Blog,最近要二次毕业了,继续写点警醒自己的话
  4. view技术简单了解
  5. leetcode 220. 存在重复元素 III(排序)
  6. Springboot整合缓存
  7. t4 tornado 模板
  8. SVN 的安装与配置
  9. Gemini创始人:如果我是GameStop CEO 接下来我会买BTC
  10. winform中导入excel表格
  11. 如何下载微信开发者工具?
  12. 易语言程序转c语言,C语言转易语言代码工具下载
  13. WebService的简单示例
  14. 计算机与材料物理,南京邮电大学材料物理专业
  15. [Python从零到壹] 十六.文本挖掘之词云热点与LDA主题分布分析万字详解
  16. 如何用计算机计算幅度,用自然语言的方式做计算:Numi 计算器
  17. 示波器20M硬件带宽限制与数字滤波高低通功能
  18. Android 商品详情页
  19. 岩板铺地好吗_卧室铺地板还是瓷砖好 这里给你答案
  20. Android模拟键盘输入功能的实现

热门文章

  1. 【CodeForces - 298D】Fish Weight (OAE思想,思维)
  2. vivoiqooz1鸿蒙系统,iQOOZ1评测:vivo新一代性价比神机
  3. java接口测试框架搭建_接口自动化测试框架搭建
  4. leetcode914. 卡牌分组
  5. leetcode1075. 项目员工 I(SQL)
  6. leetcode461. 汉明距离
  7. leetcode97 交错字符串
  8. mysql数据库表的导入导出
  9. python3.5.2安装pygame_【闲来无事,py写game】Mac-Python3.5安装pygame 1.9.2 小计
  10. STL源码剖析 算法开篇