call 和 apply,bind 的区别
时间: 2024-05-28 11:15:13 浏览: 11
call和apply都是用来调用函数的方法,它们的作用是在指定的作用域中调用函数,而bind方法则是创建一个新函数并改变函数内部的this指向。
call和apply的区别在于传递参数的方式不同。call方法的参数是直接传递给函数的,而apply方法的参数是以数组的形式传递给函数的。而bind方法则是在函数调用前将参数传入,并返回一个永久改变了this指向的新函数,这个新函数不会立即执行。
简单来说,call和apply是立即执行函数并改变this指向,而bind是创建新函数并改变this指向。
相关问题
call、apply和bind 区别
call、apply和bind都是JavaScript中用来改变函数this指向的方法。
call和apply是直接调用函数时使用的方式,它们都可以改变函数内部的this指向。其中call接受一个参数列表,而apply接受一个参数数组。
bind则是对函数进行预处理,并返回一个新的函数,这个新函数的this指向已经确定。它的使用方式与call类似,但是不会立即执行函数,而是返回一个新函数,需要手动调用。
因此,call和apply是改变this指向的立即执行方式,而bind是返回一个新函数并改变this指向的延迟执行方式。
call apply bind 区别
call、apply、bind 都是用来改变函数中 this 指向的方法。
call 和 apply 的作用相同,都是使函数调用时的 this 指向第一个参数,并且立即执行该函数,其中唯一的区别在于传参方式不同。call 的参数是逐个列举,而 apply 的参数是以数组的形式传递,即第二个参数是一个数组。
bind 的作用是返回一个新的函数,在该函数被调用时,会将 this 关键字设置为提供的值,并传入原函数的参数以进行调用。区别于 call 和 apply,bind 方法不是立即执行函数,而是返回一个新的函数。
简单来说,call 和 apply 是为了改变函数的上下文环境,而 bind 是为了改变函数的执行方式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)