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

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

    
    
    
    
  • 相关阅读:
    c++:函数模板
    1084 外观数列
    1083 是否存在相等的差
    1082 射击比赛
    1081 检查密码
    1080 MOOC期终成绩
    1079 延迟的回文数
    1078 字符串压缩与解压
    1077 互评成绩计算
    1076 Wifi密码
  • 原文地址:https://www.cnblogs.com/qiutiantian/p/3186465.html
Copyright © 2011-2022 走看看