js原生继承

js本身并没有继承和类的概念,本质上是通过原型链(prototype)的形式实现的。

1.先写两个构造函数Parent和Child,用于将Child继承Parent

function Parent() {this.animals = 'animals';this.show = function() {console.log(this.animals);}
}
Parent.prototype.pro = 'pro';
function Child() {this.dog = 'dog';
}

2.prototype继承

// 这样直接将Parent.prototype赋给Child.prototype的继承方式不可取,因为在改变Child.prototype里的属性会同时改变Parent.prototype
Child.prototype = Parent.prototype; // 不能访问构造函数属性,只能访问原型// Object.create(Parent.prototype)构造的对象是一个空对象且它的原型指向Parent.prototype,所以这里的Student.prototype是空对象,链接到了Parent.prototype,并不会影响到Parent.prototype
Child.prototype = Object.create(Parent.prototype); // 不能访问构造函数属性,只能访问原型// 这种继承方式是将实例化后的Parent对象赋给Child的prototype,既可以访问Parent构造函数里边的属性,也可以访问原型属性
Child.prototype = new Parent();// 以上任一操作完成后这一步必须操作,是将Child的构造函数指向自身,否则在执行完继承之后,实例化的对象构造函数是Parent
Child.prototype.constructor = Child;

3.call,apply构造函数继承

// 需要将Child改写如下,apply类似,但缺陷就是访问不到Parent.prototype的属性了
function Child() {Parent.call(this);this.dog = 'dog';
}

综上,可以根据自己的实际需求去选择合适的继承方式。

转载于:https://www.cnblogs.com/ljwk/p/11477303.html

js原生继承几种方式相关推荐

  1. JavaScript系列-02 HTML嵌入js代码的第二种方式

    javaScript系列 HTML中嵌入js代码的第二种方式 脚本块的方式 文章目录 javaScript系列 前言 一.了解脚本块的方式 1.1运行规则 二.执行原理 1.编写代码 2.效果 总结 ...

  2. 在HTML 中嵌入 JS 代码的三种方式

    一,在HTML中嵌入JS代码的第一种方式:行间事件 行间事件是指将JavaScript函数写到HTML元素中的执行事件. 1.JavaScript 是一种事件驱动型的编程语言,通常都是在发生某个事件的 ...

  3. JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

    文章目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2 ...

  4. HTML嵌入JS代码的三种方式

    目录 一.HTML嵌入JS代码的第一种方式:直接加一个事件句柄跟表达式 二.HTML嵌入JS代码的第二种方式:脚本块 三.HTML嵌入JS代码的第三种方式:外部引入js文件 一.HTML嵌入JS代码的 ...

  5. iOS WKWebView和JS交互的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍两种方式实现iOS WKWebView和JS交互 WKWebViewConfiguration注入WKScriptMe ...

  6. js 函数定义三种方式

    <p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...

  7. python 调用js类_Python 调用 JS 常用的4种方式,带你学会如何解密

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于AirPython ,作者星安果 1. 前言 日常 Web 端爬虫过 ...

  8. JS绑定事件三种方式

    三种方式 1.在DOM中直接绑定 2.在JS代码中直接绑定 3.使用事件监听函数绑定事件 一.在DOM中直接绑定 也就是直接在html标签中通过 onXXX="" 来绑定.举个例子 ...

  9. JS 下载文件两种方式总结

    后端返回Blob对象(文件流),完成导出.下载功能: 1.介绍Blob Blob Blob 对象表示一个不可变.原始数据的类文件对象.它的数据可以按文本或二进制的格式进行读取,也可以转换成 Reada ...

  10. 以太坊智能合约交互调用,web3.js,web3j两种方式实现

    导语 接上篇文章 <使用hardhat部署solidity智能合约到测试网> 部署完合约之后,那么如何区块链进行交互呢?这节的主要内容就是使用web3.js和web3j来与区块链以及链上的 ...

最新文章

  1. Facebook 与 Google 正在主导在线身份验证市场
  2. 2021年Python十佳ML库大盘点,国产选手GitHub半年获5k+star,第一名是升级版NumPy
  3. java 分布式任务_一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现...
  4. 学习响应式BootStrap来写融职教育网站,Bootsrtap第五天页脚
  5. sql 计算 某字段 不同值出现 的次数_教你如何合理选用和计算电线规格,电线回路分配和注意事项...
  6. linux内核模块常见问题
  7. c# linq的差集,并集,交集,去重【转】
  8. 【KPGNN】运行错误与成功后的合集
  9. 关于Android中Intent传递Serialzilable数据的问题
  10. (TI xDM)SSCR Module—Shared Scratch Memory
  11. 电源反接保护电路:MOS防电源反接电路、自恢复保险丝过流反接保护电路
  12. webpack4.x中使用postcss-loader、autoprefixer给CSS属性自动添加前缀
  13. 在Windows平台使用SSH连接Linux服务器
  14. 51Nod-1014 X^2 Mod P【暴力】
  15. win7使用命令行改计算机名,Win7巧用注册表更改计算机名的实用方法
  16. Python 计时器倒计时弹窗提醒
  17. 反向题在测试问卷信效度_问卷前测除了信效度,你还需知道...
  18. android吸顶效果,RecyclerVIew实现悬浮吸顶效果
  19. 【Java核心技术大会 PPT分享】李智慧:Java异步编程框架实践与性能优化
  20. linux cat 压缩文件,Linux cat和zcat命令可能比你意识到的更有用

热门文章

  1. 装配图中齿轮的画法_机械制图如何从入门到精通,金属结构件的表达画法,你会吗?...
  2. 软件工程专业学python_笨办法学Python(0)
  3. 拓端tecdat|python隶属关系图模型:基于模型的网络中密集重叠社区检测方法
  4. 拓端tecdat|用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
  5. duilib显示html,Duilib 控件类html富文本绘制
  6. Python数据分析之pandas常用命令整理!
  7. python实现梳排序
  8. 2021-06-20 表单详解
  9. python中if语句的实例_如何在Python中的if语句中调用某个函数?
  10. 软件学报 参考文献著录格式