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()
  • 相关阅读:
    JSON数据的解析
    【预测】腾讯后台开发明天面试会被虐死
    c++中对const的总结
    关于需求
    SQLServer 2K 安装重复出现挂起问题解决办法
    通用.Net平台系统框架剖析与设计(简单概括)
    .NET经典资源站点汇总
    petshop4.0研究
    白唬刘备第一
    SQLServer 2K 安装重复出现挂起问题解决办法
  • 原文地址:https://www.cnblogs.com/carry-carry/p/11635007.html
Copyright © 2011-2022 走看看