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)
  • 相关阅读:
    不同分辨率在线查看
    HtmlAgilityPack
    CSS知识点记录
    移动端和PC端区分
    Oracle命令
    Navicat操作Oracle
    用 Maven 做项目构建
    Java 异常处理的误区和经验总结
    ExtJs4学习(三)组件查找 ComponentQuery类
    Extjs4 操作TreeStore 处理proxyAjax 获取的数据
  • 原文地址:https://www.cnblogs.com/bhan/p/5511655.html
Copyright © 2011-2022 走看看