JavaScript 实现继承的5种方式
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种方式相关推荐
- javascript实现继承的七种方式(from 红宝书)
继承是面向对象语言的基础概念,一般OO语言支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.ECMAScript中函数没有签名,因此无法实现接口继承.ECMAS ...
- JavaScript实现继承的几种方式
1.原型链 基本思想:利用原型让一个引用类型继承另外一个引用类型的属性和方法. 构造函数,原型,实例之间的关系:每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而实例都包含一个指向原 ...
- JS 总结之原型继承的几种方式
在之前的总结中,我们详细分析了原型<JS 总结之原型>,原型很大作用用于模拟继承,这一次,我们来聊原型继承的几种方式. function Person (age) {this.age = ...
- 继承有几种方式,分别是什么,想要实现继承可以使用哪些方法
这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [继承有几种方式 ...
- Django中Model继承的三种方式
Django中Model继承的三种方式 Django中Model的继承有三种: 1.抽象继承 2.多表继承 3.proxy model(代理model) 1.抽象继承 第一种抽象继承,创建一个通用父类 ...
- JavaScript事件处理程序的3种方式
最近这段时间因为每天要修改网站,为网站做特效,所以看了很多的js接触事件,自己只会使用一小部分,有时用的时候也比较混乱,现在系统的整理了一下,首先跟大家在马海祥博客上跟大家分享的是JavaScript ...
- Javascript事件绑定的几种方式
Javascript事件绑定的几种方式 来源:http://www.cnblogs.com/rainman/archive/2009/02/11/1387955.html 上篇文章讲到了事件绑定的3中 ...
- 可以实现继承的几种方式
继承的几种方式 说起继承,又是一个老生常谈的问题了.今天来讲讲继承的几种方法以及他们的优缺点吧. 源码地址:点击这里 一.原型链继承 原型链继承:通过原型将一个引用类型继承另一个引用类型的属性和方法. ...
- JavaScript笔记 - 对象继承的几种方式
1)对象冒充 2)call方式 3)apply方式 4)原型链 5)混合方式 1)对象冒充 Js代码 function People(name, age) { this.name = name; th ...
最新文章
- Windows搭建wnmp
- [Swift]LeetCode2. 两数相加 | Add Two Numbers
- 好久不碰Blog,最近要二次毕业了,继续写点警醒自己的话
- view技术简单了解
- leetcode 220. 存在重复元素 III(排序)
- Springboot整合缓存
- t4 tornado 模板
- SVN 的安装与配置
- Gemini创始人:如果我是GameStop CEO 接下来我会买BTC
- winform中导入excel表格
- 如何下载微信开发者工具?
- 易语言程序转c语言,C语言转易语言代码工具下载
- WebService的简单示例
- 计算机与材料物理,南京邮电大学材料物理专业
- [Python从零到壹] 十六.文本挖掘之词云热点与LDA主题分布分析万字详解
- 如何用计算机计算幅度,用自然语言的方式做计算:Numi 计算器
- 示波器20M硬件带宽限制与数字滤波高低通功能
- Android 商品详情页
- 岩板铺地好吗_卧室铺地板还是瓷砖好 这里给你答案
- Android模拟键盘输入功能的实现
热门文章
- 【CodeForces - 298D】Fish Weight (OAE思想,思维)
- vivoiqooz1鸿蒙系统,iQOOZ1评测:vivo新一代性价比神机
- java接口测试框架搭建_接口自动化测试框架搭建
- leetcode914. 卡牌分组
- leetcode1075. 项目员工 I(SQL)
- leetcode461. 汉明距离
- leetcode97 交错字符串
- mysql数据库表的导入导出
- python3.5.2安装pygame_【闲来无事,py写game】Mac-Python3.5安装pygame 1.9.2 小计
- STL源码剖析 算法开篇