2019独角兽企业重金招聘Python工程师标准>>>

JavaScript之各种继承方式和优缺点

  1. 原型链继承
function Parson(){this.name = 'hy'
}
Parson.prototype.getName = function(){console.log(this.name)
}function Child(){}Child.prototype = new Parson()var Child1 = new Parson()Child1.getName() // hy

问题:

  1. 引用类型的属性被所有的实例共享,修改了会影响所有实例
function Parson(){this.name = 'hy'this.age = [13,15]
}
Parson.prototype.getName = function(){console.log(this.name)
}function Child(){}Child.prototype = new Parson()var Child1 = new Child()
Child1.age.push(16)
console.log(Child1.age) // [ 13, 15, 16 ]var Child2 = new Child()
console.log(Child2.age) // [ 13, 15, 16 ]Child1.getName() // hy
Child2.getName() // hy

2. 在创建 Child 的实例时,不能向Parent传参

2.借用构造函数继承(经典继承)

function Parson(){this.names = ['hy', 'ycl']
}function Child(){Parson.call(this)
}var child1 = new Child()child1.names.push('zz')
console.log(child1.names) // [ 'hy', 'ycl', 'zz' ]var child2 = new Child()
console.log(child2.names) // [ 'hy', 'ycl' ]

优点:

  1. 避免了引用类型的属性被所有实例共享
  2. 可以在Child中向Parson传参数
举个例子:
function Parson(name){this.names = name
}function Child(name){Parson.call(this , name)
}var child1 = new Child('hy')console.log(child1.names) // hyvar child2 = new Child('ycl')
console.log(child2.names) // ycl

问题

  1. 方法都在构造函数中定义,每次创建实例都会创建一遍方法。

转载于:https://my.oschina.net/u/4052053/blog/3020425

JavaScript之各种继承方式和优缺点相关推荐

  1. JavaScript中的几种继承方式及优缺点,你知道多少呢?

    原文连接:JavaScript中的几种继承方式及优缺点,你知道多少呢? 继承也是前端里面的重要的一个知识点,在实际工作中或者面试中也会经常的遇到,那么通过这篇文章我们详细的了解一下继承的几种方式以及各 ...

  2. javascript中的继承方式

    javascript中的继承方式有好几种. 下面分别举例供大家参考学习: 1.function parent() { this.x=1; } function child() { var instan ...

  3. JavaScript中的几种继承方式及优缺点分析

    众所周知,继承是面向对象编程思想中的三大特点(封装,继承,多态)之一. 所谓继承,通俗来讲就是子类自动拥有父类的属性和方法, 继承可以提高代码的复用性. 继承也是前端里面的重要的一个知识点,在实际工作 ...

  4. 【呆萌の研究】JavaScript常见的继承方式

    最近在看<JavaScript设计模式>,然后开篇复习了JavaScript中的几种继承方式,自己似乎也没有怎么仔细探究过,目前自己没怎么碰到过应用的场景(噗),所以借这次机会好好来屡屡思 ...

  5. JS继承方式及其优缺点总结

    1.原型链继承 -  优点:最简单的方式,将子类的原型指向父类的实例即可. -  缺点:一是引用类型的属性被所有实例共享,修改堆内存数据时会将所有实例数据都修改,但是直接创建新的存储对象就不会产生这个 ...

  6. Javascript七种继承方式

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>< ...

  7. JavaScript六种继承方式的递进推演

    1. 原型链继承 function Parent1() {this.name = "Parent1"this.son = [1] } // 需要继承的子类 function Chi ...

  8. Js理解之路:Js常见的6中继承方式

    目录 一.JS 实现继承的几种方式 第一种:原型链继承 二.构造函数继承(借助call方法) 三.组合继承(原型链继承+构造函数继承) 第四种:原型式继承(借助Object.create) 第五种:寄 ...

  9. 探究JS常见的6种继承方式

    先看以下百科对(面向对象的继承)的解释! 通过以上精炼实用的解释,我们可以了解到继承的基本作用和功能!即可以使得子类具有父类的属性和方法或者重新定义.追加属性和方法等. 广告:帮忙点击>> ...

最新文章

  1. centos7.2安装mysql 1
  2. CLOSE_WAIT 和TCP_KEEPALIVE
  3. 美团命名服务的挑战与演进
  4. 学习Linux系统的态度及技巧
  5. 中国为什么不发展民用计算机,为什么大多数人都错估了计算机与AI的发展?
  6. opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度
  7. 深入理解java虚拟机 - jvm高级特性与最佳实践(第三版)_深入理解Java虚拟机,JVM高级特性与最佳实践!...
  8. 机器人周志_机器人教学的意义
  9. 超级详细的pytest测试和allure测试报告
  10. 雷达(微波)感应天线设计
  11. 计算机键盘音乐 卡农,巴赫键盘音乐
  12. 确定部分分式中待定系数的留数方法
  13. 系统默认只有一张内置的静态壁纸,如如何修改可以内置多张静态壁纸
  14. CVE PoC的精选列表(三)
  15. 小程序点击多个指定地方都能关闭弹框
  16. 基于规则的中文地名识别系统的设计与实现
  17. App推广人员应该知道的事:一条热门微博背后的传播心理
  18. HTTP应知应会知识点复习手册(下)
  19. 【人工智能】人工智能起源以来,经过科学工作者们的大量研究与实践,向着体系化、理论化方向发展
  20. 电驴不显示链接不上服务器,电驴连接不上服务器是什么原因?原因及解决方法步骤...

热门文章

  1. DedeHttpDown下载类
  2. MySQL学习笔记(5)之数据定义类型
  3. 刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
  4. 移动端重构系列5——等分,居中等
  5. oracle client中对 TNSNAMES.ORA的研究
  6. 通过iTextSharp为PDF添加带有超链接的Bookmark
  7. web前段学习day_01:HTML(学习如何搭建页面结构和内容):文本标签、列表标签、图片标签、超链接、表格、表单表单、分区标签、实体引用
  8. 分享Kali Linux 2016.2第48周虚拟机
  9. Xamarin.Forms教程下载安装Xamarin.iOS
  10. 聚类时需要标准化吗_打球时意外受伤,同伴需要担责吗?