• 基于类的继承和基于原型的继承相比较,各有什么优劣


     

    1、两者的联系和区别(优缺点),关于原型继承: (1)原型继承在有别于类继承是因为继承不在对象本身,而在对象的原型上(prototype); (2)每一个对象都有原型,在浏览器中它体现在一个隐藏的__proto__属性上; (3)在一些现代浏览器中可以更改它们:比如在zepto中,就是通过添加zepto的fn对象到一个空的数组的__proto__属性上去,从而使得该数组成为一个zepto对象并且拥有所有的方法; (4)当一个对象需要调用某个方法时,它回去最近的原型上查找该方法,如果没有找到,它会再次往下继续查找;逐级查找,一直找到了要找的方法,这些查找的原型构成了该对象的原型链条; (5)原型最后指向的是null,原型继承,就是将父对像的方法给子类的原型,但是子类的构造函数中不拥有这些方法和属性。 2、关于基于类的继承和原型对比起来,构造函数(类)式继承的不同: (1)构造函数继承的方法都会存在父对象之中,每一次实例,都回将funciton保存在内存中,这样的做法会带来性能上的问题; (2)其次类式继承是不可变的:在运行时,无法修改或者添加新的方法,这种方式是一种固步自封的死方法; (3)而原型继承是可以通过改变原型链接而对子类进行修改的,另外就是类式继承不支持多重继承,而对于原型继承来说,只需要写好extend对对象进行扩展即可。 3、组合模式,是结合类继承和原型继承的各自优点来进行对父类的继承: (1)用类式继承属性,而原型继承方法:这种模式避免了属性的公用; (2)因为通常来说,每一个子类的属性都是私有的,而方法得到了统一。

  • 相关阅读:
    Linux网络检测手段汇总
    Hadoop单机搭建
    Nginx之Location模块
    关于STM32驱动DS1302实时时钟的一点思考
    灵感手环第一步——0.96寸OLED显示实验
    把简单做到极致
    KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data
    关于SPI通信原理与程序实现
    【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因
    关于keil5使用注意事项(预定义、路径包含)
  • 原文地址:https://www.cnblogs.com/wang-zhang/p/10116138.html
Copyright © 2020-2023  润新知