• call apply


    apply#####
    function Animal(name,age){
      this.name = name;
      this.age = age;
      this.showName = function(){
         console.log(this.name)
      };
      this.showAge = function(){
         console.log(this.age)
      };
    }
    
    function NewAnimal(name,age){
      Animal.apply(this,[name,age])
    }
    
    var dog = new NewAnimal('小狗',6)
    dog.showName()//小狗
    dog.showAge()//6
    
    call#####
    function Animal(name,age){
      this.name = name;
      this.age = age;
      this.showName = function(){
         console.log(this.name)
      };
      this.showAge = function(){
         console.log(this.age)
      };
    }
    
    function NewAnimal(name,age){
      Animal.call(this,name,age)
    }
    
    var dog = new NewAnimal('小狗',6)
    dog.showName()//小狗
    dog.showAge()//6
    
    

    总结:####

    Animal.apply(NewAnimal, [参数1,参数2...])   Animal 为即将被借用的对象   NewAnimal 为借用者  后面的数组代表方法内部传入的参数
    
    Animal.call(NewAnimal, 参数1,参数2....)   Animal 为即将被借用的对象   NewAnimal 为借用者  后面的参数123为方法内部传入的参数
    
    两个实现的效果都一样,都是改变了this的指向,但是它们的传参方式不一样
    
  • 相关阅读:
    增长思维——模式&&组织
    BackUP
    增长思维——机会
    Android
    增长思维——作战地图
    Server架构 小知识
    Server
    产品思维——创新模式
    产品思维——用户体验
    博客迁移到~http://zhulingyu.com
  • 原文地址:https://www.cnblogs.com/yzyh/p/10037551.html
Copyright © 2020-2023  润新知