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

    继承
    就是子类 继承 父类 所有的属性和方法
     
    构造函数继承原理 : 
        调用父类构造函数,并改变其中的this指向
     
    1、继承方式一 : 通过改变父类的执行环境 实现继承
    function Parent(){
        this.money = 99999999999999999;
        this.sing = function(){
            console.log("会唱歌");
        }
    }
     
    function Son(){
        在子类中定义一个属性 指向父类的构造函数
        this.pre = Parent;
           在子类中调用父类
            this.pre();
    }
     
    2、继承方式二、使用call或apply继承或bind继承 (构造函数继承)
    原理 : 在子类中使用call或apply的方式调用父类  让父类中的this指向子类new出来的对象
    call和apply的区别 : 
    call的第二个参数个数不固定
    apply的第二个参数是一个数组  这个数组可以使用arguments来代替
    用法 : 
        父类.call(  this指向 , 继承属性 )
        父类.apply( this指向 , [继承属性] )
    bind也可以实现继承 : 
    父类.bind(this指向)(继承属性)
     
    总结call和apply : 
    可以执行函数
    可以带入参数
    可以改变调用函数中this的指向
    不能用于创建函数
     
     
    3、原型继承 (原型链继承)
    让子类的原型对象指向父类的实例
    子类.prototype = new 父类()
     
    4、混合继承  混合了构造函数继承和原型链继承
    使用call或apply方式 继承实例属性 和 实例方法
    使用原型继承 继承 原型方法
     
    5、ES6的继承
        class Son extends Father{
           constructor(name,age,score){
               super(name,age);//继承父类的属性和方法
               this.score = score;//子类特有的属性
           }
           //子类特有的方法
            study(){
               return "学习ing";
           }
        }
    ES6继承中super指向的对象可以是:
    父类的构造函数
    父类
    父类的原型对象 
    不会指向父类的原型方法 
     
    6、闭包
     一个函数内部返回一个匿名函数,这个匿名函数就称为闭包
     在一个函数内部可以访问到另一个函数内的局部变量  这个函数称为闭包
     闭包的形式多样,但都是局部函数全局执行
    闭包是指有权访问另一个函数作用域中的变量的函数
    闭包作用 : 
         可以访问一个函数内部的私有变量
         通过闭包 可以延长一个局部变量的生命周期  将一个函数内部的私有变量长期驻留在内存里
    注意 : 闭包中的this 指向 window 
      
    总结闭包特点 : 
        函数嵌套函数
        函数内部可以引用外部的参数和变量
        参数和变量不会被垃圾回收机制回收
        返回的函数可以存储在外部变量中
     
     
     
  • 相关阅读:
    How To Use Google Logging Library (glog)
    段错误调试
    getline 使用
    remove_if筛选数组元素
    getline C++ Reference
    c++ Why remove_copy_if returns an empty vector? Stack Overflow
    About iClick
    哈工大社会计算与信息检索研究中心
    python的16进制和10进制间的转换
    毕业生 哈尔滨工业大学社会计算与信息检索研究中心 理解语言,认知社会
  • 原文地址:https://www.cnblogs.com/cqdd/p/10363108.html
Copyright © 2011-2022 走看看