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 };
  • 相关阅读:
    [转]VS2013自带SQL Server 的启用方法
    [转]CryptographyHelper.cs
    [转]Oracle 经验集
    程序的健壮性和鲁棒性
    死理性派恋爱法:拒绝掉前面37%的人
    Asp.net页面间传值方式汇总
    【操作系统】总结五(I/O管理)
    Windows编程
    【操作系统】磁盘
    【操作系统】文件系统
  • 原文地址:https://www.cnblogs.com/tinyTea/p/9945334.html
Copyright © 2011-2022 走看看