原生JS继承由浅入深了解

1、e5继承:

克隆式继承

for in 继承:也就是父类有的方法和属性,你需要什么你就复制过来用就行,也很容易理解,但是,相比于原型链继承,非常的磨叽,接下来看原型链继承了!!!


原型链继承:

什么是原型链继承呐?和copy继承又有啥区别呢?请听笔者一一道来,莫要慌张。

所谓的原型链继承就是,我不需要拷贝你的东西,但是我要你的使用权(可以想象可爱的寄居蟹,把海螺的房子拿来自己住,嘎嘎!!),说白了,我不像copy继承一样那么磨叽,我直接把我的原型指针指向我要继承的原型。

说到这里是不是又蒙圈了呐??不急,接下来逐步剖析。。。。

1、首先我们把子类(JS没有类的概念,类只是语法糖,它的雏形就是构造函数,我只是方便看官们理解)的原型指针指向父类,看图~


运行这段代码之后,你会很奇怪,这是个啥啊,我的constructor呢,你是不是框我呐,

你只要把Son.constructor = Son指回去就好了


但是你可能会发现,_proto_这玩意儿兼容性不好,ie不一定能运行,你的想法没错。接下来进阶了,

我们呢,把指针指向new Father()



小可爱们,可能你们已经发现了。我的_proto_咋就指向了Farther,这个问题就是JS机制,不用理会

,你们又有问题了,这样太磨叽了,还要实例Father,OK,我们的终极大招要来了!!!

Object.create()


,对,就是这么简单,一个Object.create,搞定了

2、es6继承:

extends继承,相当的简单,直接上图


super()继承


继承下来之后可以随便改造,为所欲为了!!!

继承知识到此就告一段了,有啥问题的小可爱,欢迎留言讨论哈~~~~~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化、多态、和封装几种技术。对 JavaSc...
    吴佳浩阅读 528评论 0 4
  • 继承6种套餐 参照红皮书,JS继承一共6种 1.原型链继承 核心思想:子类的原型指向父类的一个实例 Son.pro...
    灯不梨喵阅读 3,207评论 1 2
  • 前言 如果你觉得JS的继承写起来特别费劲,特别艰涩,特别不伦不类,我想说,我也有同感。尤其是作为一个学过Java的...
    光头韩阅读 479评论 0 2
  • 就真滴很气 之前一直就是半斤八两的糊弄原型 今天的笔试题,GG 嗨呀 我要死磕了 网上有非常多的文章尝试去解释这个...
    灯不梨喵阅读 391评论 0 0
  • 最近又把村上春树的《当我谈跑步的时候我谈些什么》翻出来看了一遍。扉页上没有记录第一次阅读的时间,估计约是七八年...
    猫贤猫阅读 867评论 3 8