zoukankan      html  css  js  c++  java
  • call、apply、bind三者的区别


    先构造函数
    let xiaowang={ name1:"小王", age:"23", sex:"", say:function(){ console.log(this.name1+","+this.age+","+this.sex) } } let xiaohong={ name1:"小红", age:"18", sex:"" }
      调用xiaowang xiaowang.say()-----输出的是 小王,23,男

      用call方法 xiaowang.say.call(xiaohong)------输出的是 小红,18,女

      用apply方法 xiaowang.say.apply(xiaohong)------输出的是 小红,18,女

      用bind方法 bind返回的是函数所以后面加上() xiaowang.say.bind(xiaohong)()-----输出是 小红,18,女
    //所以call和apply都是对函数的直接调用,而bind方法返回的仍然是一个函数,因此后面还需要()来进行调用才可以。
      然后我们来看call和apply的区别
    let xiaoming={ name1:"小明", age:"23", sex:"", say:function(school,like){ console.log(this.name1+","+this.age+","+this.sex+","+school+","+like)
            }
        }
        let xiaoli={
            name1:"小丽",
            age:"18",
            sex:""
        }
        xiaoming.say.call(xiaoli ,"吕梁学院","芒果")------输出----小丽,18,女,吕梁学院,芒果
        xiaoming.say.apply(xiaoli,["运城学院","榴莲"])----输出----小丽,18,女,运城学院,榴莲
        // call后面的参数与say方法中是一一对应的,而apply的第二个参数是一个数组,数组中的元素是和say方法中一一对应的,这就是两者最大的区别。
  • 相关阅读:
    axios解决调用后端接口跨域问题
    vuex的使用入门-官方用例
    vue使用axios实现前后端通信
    vue组件间通信用例
    vue-router的访问权限管理
    vue-router使用入门
    PHP 流程控制
    PHP 表达式和运算符
    PHP 预定义变量
    PHP 常量
  • 原文地址:https://www.cnblogs.com/aloneindefeat/p/10483883.html
Copyright © 2011-2022 走看看