| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> JavaScript中的继承 -> 正文阅读 |
|
[JavaScript知识库]JavaScript中的继承 |
js继承实现方式有很多,主要分ES5继承和ES6继承的实现 ES5继承ES5实现继承主要是基于prototype来实现的,具体有三种方法 1.原型链继承:B.prototype=new A() 子类继承父类的属性和方法目的:?可以让子类的实例?能够使用父类的属性和方法 ?特点 ????????1.js继承是把父类的原型放到子类的原型链上,实际想要调用这些方法,其实是基于_proto_? 原型链的机制查找完成的 ????????2.子类可以重写父类上的属性和方法 ????????3.父类中私有的或者公有的属性和方法,最后都会变成子类公有的属性和方法 优点: ? ? ? 1.不限制调用方式 ? ? ? 2.简单,易实现 缺点: ? ? ?不能多次继承 ?2.借用构造函数继承:(call或者apply的?式继承)??(call继承) ????????1.子类实例可以使用父类私有的属性和方法 ????????2.父类私有属性和方法都会变成子类实例私有的属性和方法(原型链继承) ????????3.子类实例可以通过原型链访问和使用父类公有的属性和方法 ????????4.子类的原型链上会存在一份多余的父类的私有属性和方法 优点: ? ? ? ? ?1. 解决了子类构造函数向父类构造函数中传递参数 ? ? ? ? ?2.?可以实现多继承(call或者apply多个父类) 缺点: ? ? ? ? ?1. 方法都在构造函数中定义,无法复用 ? ? ? ? ?2.?不能继承原型属性/方法,只能继承父类的实例属性和方法 3. 组合继承:是结合原型链继承和借用构造函数继承优点: ? ??1. 函数可以复用 ? ? 2.?不存在引用属性问题 ? ? 3.?可以继承属性和方法,并且可以继承原型的属性和方法 缺点: ? ??由于调用了两次父类,所以产生了两份实例 ES6继承(代码量少、易懂)?class关键字定义类,?extends关键字继承类,?super()表示?类 ES5继承和ES6继承的区别1. es5继承首先是在子类中创建自己的this指向,最后将方法添加到this中 2. es6继承是使用关键字先创建父类的实例对象this,最后在子类class中修改this |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:07:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |