zoukankan      html  css  js  c++  java
  • javascript原型,继承

    //普通对象
    //函数对象(有原型 prototy 的属性)
    //原型的应用 继承
    function Amial(){
        this.type = '小于'
    }
    function cat(name){
        this.name = name
    }
    cat.prototype = new Amial()
    var cat1 = new cat('小张')
    console.log(cat1.name,cat1.type)
    
    //构造器  继承 缺点:把父元素的属性都复制了
    function Amial(){
        this.type = '动物'
    }
    function amm(name){
        Amial.apply(this) //调用Amial构造器 Amial == amm
        //Amial.call(this,x,y,z)  Amial.apply(this,[x,y,z])
        this.name = name
    }
    var a = new amm('张三')
    console.log(a.type)
    
    //组合继承(原型+构造器) 缺点:调用两次父类构造器
    
    function Preson(name){
        this.arr = ['js','php']
        this.name = name
    }
    Preson.prototype.showname = function(){
        console.log(this.name)
    }
    function teacher(name,gread){
        Preson.call(this,name)
        this.gread = gread
    }
    teacher.prototype = new Preson() // 最关键的一句
    var a = new teacher('xiaoming', 23)
    console.log(a.arr,a.name,a.gread)
    a.showname()
    
    //原型+构造+寄生
    function father(name){
        this.arr = ['aa','bb']
        this.name = name
    }
    father.prototype.showname = function(){
       console.log(this.name)
    }
    function son(name,course){
       father.call(this,name)
       this.course = course
    }
    function extend(subobj,superobj){
       var proobj = Object.create(superobj.prototype)
       subobj.prototype = proobj
    }
    extend(son, father)
    var a = new son('xiaoming', 23)
    console.log(a.arr,a.name,a.course)
    a.showname()
  • 相关阅读:
    e552. 取Applet的参数
    e551. 精简的Applet
    e558. 在Applet中多图片交互显示
    e1087. try/catch语句
    e1086. if/else语句
    e1087. 用For循环做数组的遍历
    e1084. 捕获错误和异常
    Zookeeper 应用程序
    Zookeeper API
    Java并发编程:volatile关键字解析
  • 原文地址:https://www.cnblogs.com/carry-carry/p/11635007.html
Copyright © 2011-2022 走看看