流浪のwolf

卷帝

导航

call apply bind 的区别

相同点:动态修改当前函数内部环境对象 this 指向 ;

异同点:

  执行方式的不同

    call apply 改变后立即执行,是同步代码

    bind 是异步代码,改变后不会立即执行,会返回一个函数 ,比如改变定时器内部的this指向

  传参不同

    call 和 bind 逐个传入

    apply 以数组的方式传入,可以使用剩余参数传值

 

三者的使用场景:

  call 经常做继承.

  apply经常跟数组有关系. 比如借助于数学对象实现数组最大值最小值

  bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向。

posted on 2022-10-20 07:02  流浪のwolf  阅读(17)  评论(0编辑  收藏  举报