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方法中一一对应的,这就是两者最大的区别。
  • 相关阅读:
    Js:返回上一页
    select设置选中项/select的级联
    js闭包
    bootstrap
    My97DatePicker使用 、layDate 日期与时间组件
    IO流
    java之String工具类和File类
    Python学习之路文件file常用方法
    Python学习之路-集合set的常用方法
    Python学习之路-字典外传
  • 原文地址:https://www.cnblogs.com/aloneindefeat/p/10483883.html
Copyright © 2011-2022 走看看