JavaScript 面试题
目录

JavaScript 中 call, apply, bind 方法的区别和用法?

· 约 3 分钟读完 · 第 371 / 507 章

推荐答案

在 JavaScript 中,call、apply 和 bind 都是用于改变函数执行时 this 的指向的方法。它们的主要区别在于参数的传递方式和执行时机。

  • call: 立即执行函数,并允许你传递一个参数列表。
  • apply: 立即执行函数,并允许你传递一个参数数组。
  • bind: 返回一个新的函数,不会立即执行,允许你传递一个参数列表。

示例代码

本题详细解读

call 方法

call 方法允许你调用一个函数,并且可以指定函数内部的 this 值。call 方法的第一个参数是 this 的值,后面的参数是传递给函数的参数列表。

apply 方法

apply 方法与 call 方法类似,但它接受一个数组作为参数列表。apply 方法的第一个参数是 this 的值,第二个参数是一个数组,数组中的元素将作为参数传递给函数。

bind 方法

bind 方法返回一个新的函数,这个新函数的 this 值被绑定到指定的对象。与 call 和 apply 不同,bind 不会立即执行函数,而是返回一个绑定了 this 值的新函数,可以在稍后调用。

总结

  • call: 立即执行函数,参数逐个传递。
  • apply: 立即执行函数,参数以数组形式传递。
  • bind: 返回一个新函数,参数逐个传递,稍后执行。