call apply bind 三者的区别及应用场景

call  apply   bind

相同点:

  都可以改变函数内部this指向问题

区别:

  1 call 和 apply 会调用函数,并且改变函数内部this指向

  2 call和apply 传递的参数不同,call传递参数形式 为 aru1,aru2.......apply传递的参数为数组形式(这个数组在执行函数时会改变为字符串或数字)

  3 bind 不会调用函数,可以改变函数内部this指向

主演应用场景:

  1 call主要用于继承

  2 apply 经常跟数组有关系,比如借助Math内置对象实现求数组最大最小值问题

  3 不调用函数,又想改变函数内部this指向  比如 定时器之类的问题

原文地址:https://www.cnblogs.com/xu3241/p/13267012.html