zoukankan      html  css  js  c++  java
  • js继承

    继承,通过原型链实现

     1 function Box(){          //被继承的函数叫做超类型 父类基类
     2       this.name = "Lee";
     3 }
     4 function Dest(){            //继承的函数叫做子类型 子类派生类
     5       this.age = 100;
     6 }
     7 function Table(){
     8       this.level = "AAA";
     9 }
    10 //通过原型链继承,超类型实例化后的对象实例,赋值给子类型的原型属性
    11 //new Box()会将Box构造里的信息和原型里的信息都交给Dest
    12 //Desk的原型,得到的是Box的构造+原型里的信息
    13 Dest.prototype = new Box()
    14 Table.prototype = new Desk()
    15 
    16 var dest = new Desk();
    17 alert(desk.age)
    18 alert(desk.name)
    19 
    20 var table = new Table();
    21 alert(desk.age)
    22 alert(desk.name)
    23 alert(table.level)

    就近原则,实例里有就返回,没有就去查找原型。

    子类型从属于自己或者他的超类型

    使用对象冒充继承

     1 function Box(name,age){
     2     this.name = name;
     3     this.age = age;
     4     this.family=["哥哥“,”姐姐“,”妹妹“]    //引用类型放在构造里就不会被共享
     5 }
     6 //构造函数里的方法,放在构造里,每次实例化都会分配一个内存地址,所以最好放在原型里,保证多次实例化只有一次地址。
     7 Box.prototype.run = function(){
     8    return this.name + this.age+“运行中”
     9 }
    10 
    11 //Box.prototype.family="家庭"
    12 
    13 function Desk(name,age){
    14    Box.call(this,name,age)       //对象冒充,只能继承构造里的信息
    15 }
    16 Desk.prototype = new Box()   //原型链继承
    17 
    18 var desk = new Desk("Lee",100);
    19 alert(desk.name)
    20 alert(desk.family)
    21 desk.family.push("弟弟")
    22 
    23 var desk2 = new Desk("Lee",100)
    24 alert(desk2.family)
  • 相关阅读:
    camke 参数
    17.计算1-100之和+1-50的平方和+1-10的倒数
    16.求Sn=a+aa+aaa+aaaa.......之值
    15.计算1!+2!+3!+.....20!=?
    14.输出所有的“水仙花”
    13.企业发放的奖金根据利润提成
    12.输入一个成绩计算其A,B,C,D,E等级
    11.键盘输入小于1000的整数
    10.求方程的根
    2019考研历程回顾
  • 原文地址:https://www.cnblogs.com/bhan/p/5511655.html
Copyright © 2011-2022 走看看