zoukankan      html  css  js  c++  java
  • 理想的继承范式——寄生组合式继承

     1 window.onload = function() {
     2     var person1 = new SubType("Gee", 20);
     3     var person2 = new SubType("Key", 21);
     4 
     5     person1.colors.push("yellow");
     6     alert("person1: " + person1.colors);    // red, blue, green, yellow
     7     alert("person2: " + person2.colors);    // red, blue, green
     8 
     9     person1.sayName();    // Gee
    10     person2.sayAge();    // 21
    11 };
    12 
    13 function object(o){
    14     function F() {}
    15     F.prototype = o;
    16     return new F();
    17 }
    18 
    19 /**
    20  * 继承超类型的方法
    21  * @param  {Object} subType   子类型
    22  * @param  {Object} superType 超类型
    23  * @return {null}
    24  */
    25 function inheritPrototype(subType, superType) {
    26     var prototype = object(superType.prototype);    // 创建对象
    27     prototype.constructor = subType;    // 增强对象
    28     subType.prototype = prototype;    // 指定对象
    29 }
    30 
    31 function SuperType(name) {
    32     this.name = name;
    33     this.colors = ["red", "blue", "green"];
    34 }
    35 
    36 SuperType.prototype.sayName = function() {
    37     alert(this.name);
    38 };
    39 
    40 function SubType(name, age) {
    41     SuperType.call(this, name);    // 继承属性,并传递参数,子类型将具有独立属性而非共享属性
    42 
    43     this.age = age;
    44 }
    45 
    46 inheritPrototype(SubType, SuperType);
    47 
    48 SubType.prototype.sayAge = function () {
    49     alert(this.age);
    50 };
  • 相关阅读:
    hdoj_1016Prime Ring Problem
    毛玻璃
    HDOJ1175连连看
    const小结
    指向二维数组的指针
    关于对ACM OJ大数据递归栈溢出问题的解决方案
    Hessian的使用与介绍
    Tomcat调优
    ant使用
    ant使用
  • 原文地址:https://www.cnblogs.com/tinyTea/p/9945334.html
Copyright © 2011-2022 走看看