(这是es6的第10篇文章。说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧)

类的继承

有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法。不包括静态属性和方法

super函数

super函数:只能用在子类中

B类继承与A类,取得父类的this。B类就可以在A类的基础上加入新的属性或方法了。

constructor中的super可以继承属性后添加新属性,子类的constructor中必须加super

方法中的super可以继承方法后继续执行下面的语句

所以结果:

这2种写法B类是一样的

instanceof 判断对象是否属于该类:

父对象a不属于子类B,子对象b属于父类A。

从子类中获取父类

Object.getPrototypeOf():

得出B类是否继承于A类

super关键字

使用时可以是函数,也可以对象

作为函数,用于子类声明this

作为对象时,子类方法中使用,用于调用父类方法

p是undefined,父类实例属性无法通过super对象直接调用,

f是1,父类实例方法可以通过super对象直接调用

如果属性在父类的原型对象上,那super对象可以取到:

x属性在A类.prototype上,所以super可以取到

super调用父类方法时,super绑定子类this:

super.f()时,f()是父类方法,但x已被子类改变,所以是2

静态方法中的super对象,进的是父类的静态方法

实例(原型对象)方法中的super对象,进的是父类的实例方法

类的prototype属性与proto属性

而Object.setPrototypeOf的实现方法时这样的。

因此:

extends继承目标

A类继承Object类:

A无继承:

实例的proto属性

子类的原型的原型,就是父类的原型

原生类(构造函数)的继承

以Image为例:

new子类实例后,结果:

一句:接纳自己才能真正做回自己。想让别人喜欢自己就要先自己喜欢自己。

----公众号:海瑞菌

ES6知识整理(10)--class的继承的更多相关文章

  1. ES6知识整理(4)--数组的扩展

    最近工作比较忙,基本每天都会加班到很晚.处理一些客户端兼容问题以及提升用户体验的优化.也将近一周没更文了,现在继续es6的学习总结. 上篇回顾 ES6知识整理(三)--函数的扩展 扩展运算符 形式是3 ...

  2. ES6知识整理(1)--let和const命令

    最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是正在的学到了... 那么现在开始 LINK START!(首先是第一讲,前 ...

  3. ES6知识整理(5)--对象的扩展

    个人开这个公众号的初心是为了积累知识,因此并没有做什么推广,再说自己也不知道怎么推广,推广之后又能干些什么.已经将近10天没发文章了,虽然每天都加班,但也不会一点时间都没有,有时还是会懒癌发作不想学习 ...

  4. ES6知识整理(2)--变量的解构赋值

    最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 上一篇是一个试水,现在接上. 变量提升 看了下朋友回复 ...

  5. ES6知识整理(3)--函数的扩展

    只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 最近上班有点忙的关系,于是文章更新会慢些.只有晚上加完班之后,空余时间才能学习整理.因此完成一篇也可能要几个晚上 ...

  6. ES6知识整理(9)--class的基本语法

    (总结完知识点,出去滑板刷街) promise的catch 上一节promise中漏了一个知识点: promise对象可以使用catch来避免每个then中都加error判断,让错误时都进到catch ...

  7. ES6知识整理(8)--Promise对象

    (关于promise,以前并不知道是什么,没这个概念.现在来学习总结下) promise含义 es6的异步编程解决方案.需要new新对象操作api. promise对象特点 有3中状态:pending ...

  8. ES6知识整理(7)--Set和Map数据结构

    (文章会同步到博客园,技术类文章还是该让搜索引擎察觉比较好) Set构造函数 初始化一个值不重复的数组,适合做数组去重. 2种数组去重的方法: 这里再说下Array.from(),表示以一个类数组|| ...

  9. ES6知识整理(6)--Symbol函数

    (文章会同步到博客园,技术类文章还是该让搜索引擎察觉比较好) symbol是js的第7种数据类型: 7种分别是:undefined.null.boolean(布尔).string(字符串).numbe ...

随机推荐

  1. C++的函数功能总结

    1. string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,返回npos. 2.string的substr(pos=0, count=npos)返回字符串[pos, pos+ ...

  2. sap 创建odata服务,通过http向数据库 进行增删改查

    https://blog.csdn.net/stone0823/article/details/71057172 1:通过 事物码 se11 创建 数据库表  zemp.表 zemp中 含有empid ...

  3. Vim配色方案报错解决方案

    求Linux大神解答,我刚刚从网上下载了个vim的配色方案,配置好后启动vim就报如下错误,怎么处理呢?小白,求不被鄙视~ 处理 /usr/share/vim/vim72/colors/rainbow ...

  4. java.lang.SecurityException: Permission Denial: writing android.support.v4.content.FileProvider uri

    在使用红米手机拍摄照片时,出现闪退的情况. 调用系统相机拍摄照片,使用FileProvider.getUriForFile传入Uri时,报异常 java.lang.SecurityException: ...

  5. windows下使用sed和tee命令

    最近需要在winowds slave上设置构建app和sdk,至于如何在windows slave上构建c/c++代码生成sdk(dll,lib之类)和apk(exe文件),请参考我的另外一篇博客,即 ...

  6. PowerDesigner安装及破解

    1.复制pdflm16.dll文件. 2.. 找到PowerDesigner16.5的安装目录,然后粘贴pdflm16.dll,替换安装目录里面的pdflm16.dll文件: 3.重新启动PowerD ...

  7. c# 判断文件是否发生了变化

    你这个是想文件发生改变时,自动调用一个函数,做出一些操作呢. 还是有一个按钮(或者别的什么),你去点击一下,然后检测下一个文件,是否发生了变化? 下面的代码,监控d盘下的所有.txt文件的修改 1 2 ...

  8. 如何快速知道一个颜色的rgb值

    1.如果你想使用某种颜色缺不知道rgb值是多少,可以将一张图片用系统自带的画图(我的系统是win7)0工具打开,点击编辑颜色就会出现调色板,然后就可以选择查看具体颜色的rgb值了 2.如果你想知道某个 ...

  9. vue2.0项目中 localhost改成ip地址访问

    这里 你可以写成你的ip  那你的项目只能ip访问了,但是写成0.0.0.0的话 你既可已localhost 访问也可以ip访问 也可以写成 127.0.0.1也可以,也能local访问了和ip访问( ...

  10. Visual Studio 2015 开发Android Cordova出现unsupported major minor version 52.0错误的解决方法

    JDK版本的问题,需要JDK1.8版本,安装!VS2015做如下设置, 工具->选项->用于Apache Cordoba的工具->环境变量替代->JAVA_HOME设为1.8: