zoukankan      html  css  js  c++  java
  • 面向对象继承学习。

    看了js高级程序设计。反复看就会比较好懂oo。

    但是目前还没有学会封装,待尝试待学习。

    今天学习了阮一峰的博文。继承一章。写得很易懂,收藏一下。http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html#comment-text

    对于文中提到的几个继承的方法。

    有神回复。觉得非常棒。特意makt一下:

      第一种:构造函数绑定,即用call(apply)把父对象的this指向改为子对象
      缺点:不能继承原型上的属性和方法;

      第二种:prototype模式,即把子对象的prototype对象指向Animal的一个实例;
      缺点:如果子对象的prototype对象上有属性或方法时,将被清除;
      注意:当改了prototype对象的constructor时,记得改回来,否则将造成继承链紊乱;

      第三种:直接继承prototype,即child.prototype = parent.prototype;
      优点:相比第二种效率更高,比较省内存;
      缺点:如果子对象的prototype对象上有属性或方法时,将被清除;
      且子对象的prototype对象修改后父对象的prototype也会被修改;

      第四种:利用空对象作为中介,第三种的升级版;
      缺点:如果子对象的prototype对象上有属性或方法时,将被清除;
      且子对象的prototype对象修改后父对象的prototype也会被修改;

      第五种:拷贝继承
      缺点:只能继承原型上的属性和方法;
      优点:如果子对象的prototype对象上有属性或方法时,不会被清除,
      且子对象的prototype对象修改后父对象的prototype不会被修改;

      总结:继承加在原型上的属性和方法时用第五种,而继承写在构造函数里的属性和方法则用第一种,两则结合用

  • 相关阅读:
    【转】【人在职场】能力与价值
    【转】小议Bug敏感度---Bug敏感度的故事(一)
    【转】请尊重测试:测试从业五年有感
    【转】性能测试设计和LR原理的探讨
    【转】企业级Java应用最重要的4个性能指标
    暂存
    存储过程参数输入输出
    sqlserver 分页
    学习网址
    daatable动态创建
  • 原文地址:https://www.cnblogs.com/ihqn19/p/3075349.html
Copyright © 2011-2022 走看看