zoukankan      html  css  js  c++  java
  • 类式继承与原型继承之间的性能差异与原型链结构区别

    这篇讨论下类式继承与原型继承之间的性能差异与原型链结构区别

    我们先开始讨论原型链结构区别,在前面的两个章节里面,分别层现了类式继承与原型继承的实现方式。接下来我利用前面2个章节的代码来声明2个对象。

    原型继承:

       var p1 clone(Person);
       var p2 clone(Person);

    类式继承: 

    var a1 = new Author(21, "asd");
    var a2 = new Author(22, "dsa");

    接下来我们用chrome来看下 a1与p1的结构图

     如a1(类式继承)中,它拥有2个的__proto__ 而p1就一个。在链式的查找中无疑p1的搜索来的更快速。

    在类式继承中我们看到这句话

    1 subClass.prototype = new f();

    在原型继承中

    1 f.prototype = object;

    他们都使用了prototype来继承,但是类式继承中,每一次的继承都是一个新生成的实例对象,而实例继承中每次都直接使用一个对象字面量。

    类式继承subclass.prototype=[new subclass()].__proto__=[new f()].__proto__=f.prototype

    原型继承f.prototype=[new f()].__proto__=object

    所以不管是在空间上还是在属性搜索上,原型继承都优于类式继承。但是使用哪一种方式取决于具体业务。比较特别的一点是程序员大多钟情于类式继承。

    
    
    
    
  • 相关阅读:
    python高级之操作数据库
    算法之矩阵计算斐波那契数列
    Mysql操作初级
    python高级之生成器&迭代器
    python高级之装饰器
    python高级之多进程
    python高级之多线程
    操作系统IO模型
    python高级之网络编程
    python高级之面向对象高级
  • 原文地址:https://www.cnblogs.com/qiutiantian/p/3186465.html
Copyright © 2011-2022 走看看