call、apply和bind面试题
时间: 2023-04-30 12:04:17 浏览: 60
call、apply和bind是JavaScript中用于改变函数执行上下文的方法。它们允许我们在调用函数时指定函数内部的this关键字所指向的对象,以及传递参数。call和apply的区别在于传递参数的方式不同,apply需要把参数放在数组中传递,而call则是一个一个地传递。bind方法与call、apply类似,但它不是立即调用函数,而是返回一个新的函数,这个新函数的this指向bind方法传递的对象。
相关问题
call、apply和bind 区别
call、apply和bind都是JavaScript中用来改变函数this指向的方法。
call和apply是直接调用函数时使用的方式,它们都可以改变函数内部的this指向。其中call接受一个参数列表,而apply接受一个参数数组。
bind则是对函数进行预处理,并返回一个新的函数,这个新函数的this指向已经确定。它的使用方式与call类似,但是不会立即执行函数,而是返回一个新函数,需要手动调用。
因此,call和apply是改变this指向的立即执行方式,而bind是返回一个新函数并改变this指向的延迟执行方式。
js中call和apply和bind区别
JavaScript 中的 call 和 apply 和 bind 是 JavaScript 中的函数对象的三个方法。它们的主要作用是改变函数的调用对象。
call:
- 与 apply 类似,都是在特定的作用域中调用函数
- 但是传入参数的形式不同,call 是把参数列举出来传入函数
apply:
- 与 call 类似,都是在特定的作用域中调用函数
- 但是传入参数的形式不同,apply 是把参数放在一个数组或者类数组里传入
bind:
- 与 call 和 apply 的不同之处在于 bind 不会立即调用函数,而是返回一个新的函数,需要在需要的时候再调用,也就是提前指定好函数的执行环境