zoukankan      html  css  js  c++  java
  • javacript实现类继承的几种方法

    <script type="text/javascript">
      2 //------------------对象冒充实现继承-----------------
      3 function ClassA(sColor)
      4 {
      5 this.color=sColor;
      6 this.showColor=function()
      7     {
      8         alert(this.color);
      9     }
    10 }
    11 function ClassC(iBig)
    12 {
    13 this.color=iBig;
    14 this.showBig=function()
    15     {
    16         alert(this.color);
    17     }
    18
    19 }
    20 function ClassB(sColor,sName,iBig)
    21 {
    22 this.newMethed=ClassA;
    23 this.newMethed(sColor);
    24 delete this.newMethed;
    25
    26 this.newMethed=ClassC;
    27 this.newMethed(iBig);
    28 delete this.newMethed;
    29
    30 this.name=sName;
    31 this.sayName=function()
    32     {
    33         alert(this.name);
    34     }
    35 }
    36 //var oCarA=new ClassA("red");
    37 //oCarA.showColor();
    38 var oCarB=new ClassB("blue","myTest",100);
    39 oCarB.showColor();
    40 oCarB.showBig();
    41 oCarB.sayName();
    42 //----------------call或apply方法实现继承---------------------
    43 function ClassA(sColor)
    44 {
    45 this.color=sColor;
    46 this.showColor=function()
    47     {
    48         alert(this.color);
    49     }
    50 }
    51 function ClassB(sColor,sName)
    52 {
    53 //this.newMethed=ClassA;
    54 //this.newMethed(sColor);
    55 //delete this.newMethed;
    56 //ClassA.call(this,sColor);
    57 //ClassA.apply(this,new Array(sColor));
    58     ClassA.apply(this,arguments);
    59
    60 this.name=sName;
    61 this.sayName=function()
    62     {
    63         alert(this.name);
    64     }
    65 }
    66 var oCarB=new ClassB("blue","myTest");
    67 oCarB.showColor();
    68 oCarB.sayName();
    69 //-------------------原型链实现继承------------------------
    70 function ClassA(){}
    71 ClassA.prototype.color="red";
    72 ClassA.prototype.showColor=function()
    73 {
    74     alert(this.color);
    75 }
    76 }
    77 function ClassB(){}
    78
    79 ClassB.prototype=new ClassA();
    80 ClassB.prototype.name="smatt";
    81 ClassB.prototype.showName=function()
    82 {
    83     alert(this.name);
    84 }
    85 var oCar=new ClassB();
    86 oCar.showColor();
    87 oCar.showName();
    88 //----------------------混合方式实现继承-----------------------------
    89 function ClassA(sColor)
    90 {
    91 this.color=sColor;
    92 }
    93 ClassA.prototype.showColor=function()
    94 {
    95     alert(this.color);
    96 }
    97 function ClassB(sColor,sName)
    98 {
    99     ClassA.call(this,sColor);
    100 this.name=sName;
    101 }
    102 ClassB.prototype=new ClassA();
    103 ClassB.prototype.showName=function()
    104 {
    105     alert(this.name);
    106 }
    107 var oCar=new ClassB("red","smatt");
    108 oCar.showColor();
    109 oCar.showName();
    110
    111 </script>

  • 相关阅读:
    # IDEA使用技巧
    # 分治算法实例代码
    # 蓝桥杯—开关问题
    PAT 甲级测试题目 -- 1011 World Cup Betting
    PAT 甲级测试题目 -- 1010 Radix
    PAT 甲级测试题目 -- 1009 Product of Polynomials
    PAT 甲级测试题目 -- 1008 Elevator
    PAT 甲级测试题目 -- 1007 Maximum Subsequence Sum
    PAT 甲级测试题目 -- 1006 Sign In and Sign Out
    PAT 甲级测试题目 -- 1005 Spell It Right
  • 原文地址:https://www.cnblogs.com/zhukezhuke/p/1542902.html
Copyright © 2011-2022 走看看