call,apply,bind的区别

共同点:第一个参数都是改变this的指向

不同点:

  call 方法可以以aru1,aru2形式传入多个参数,经常用于继承

  apply 方法必须以数组形式传入参数 ,跟数组有关系,比如借用数学对像求最大值和最小值

  

 

 

  bind,只改变this指向不调用函数,可以传入多个参数,如果一个函数体里既有自己的this,又有全局的this,可以fn().bind(null,this),就不改变当前的this指向,将全局的this以参数的形式传入,这样自己的this和全局的this都能够使用

  经常用于需要改变函数内部指向又不立即执行的函数,比如改变定时器内部的指向

  

 

posted @ 2021-01-08 21:44  Hat-boy  阅读(50)  评论(0)    收藏  举报