美文网首页
JS中函数的bind、call、apply总结

JS中函数的bind、call、apply总结

作者: 古水木 | 来源:发表于2019-05-25 12:35 被阅读0次

    如图,js函数本身就具有一些方法和属性

    image.png

    下面介绍一些常用方法。

    1.bind方法

    bind方法可以改变函数在被执行时内部的this指向,并返回一个函数
    举例如下:
    1.假入不用箭头函数,我们可以用如下方法改变setTimeIntervalthis的指向

    setTimeInterval(function(){}.bind(this),1000}
    

    2.触发事件

    btn.onclick=function(){
      console.log(this)
    }.bind(obj)
    

    2.apply方法

    改变函数执行的this,并接收参数数组,执行函数
    举例如下:
    已知Math.max方法可以获取一组数中的最大值
    Math.max(2,5,7),但改方法只能接收单个字符,那么如何获取数组的最大值呢?
    可应用apply方法

    var arr=[2,5,6,7]
    Math.max.apply(null,arr)
    

    2.call方法

    apply方法不同的是,call方法接收的是参数列表
    举例,在函数继承时
    例如学生要继承人的属性

    function Person(name,age){
      this.name=name;
      this.age=age;
    }
    function Student(name,age,score){
      Person.call(this,name,age)//此处用 call 方法来改变this为Student的this
      this.score=score;
    }
    var s1=new Student('xiaoyu',22,99)
    

    相关文章

      网友评论

          本文标题:JS中函数的bind、call、apply总结

          本文链接:https://www.haomeiwen.com/subject/gamazqtx.html