call、apply和bind 区别
时间: 2023-09-14 20:10:28 浏览: 135
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 不会立即调用函数,而是返回一个新的函数,需要在需要的时候再调用,也就是提前指定好函数的执行环境
call和apply和bind的区别和作用
call、apply、bind都是JavaScript中用于调用函数的方法,它们的不同在于调用方式和作用。
call方法可用于调用函数,并设置this关键字所指的对象以及传入的参数,其语法为:function.call(thisArg, arg1, arg2, ...)
apply方法与call类似,但参数需要以数组的形式传入,其语法为:function.apply(thisArg, [argsArray])
bind方法用于绑定函数内部的this关键字,并返回一个新的函数供稍后调用,其语法为:function.bind(thisArg, arg1, arg2, ...)
总的来说,它们的主要作用是改变函数内部的this指向,以及参数的传递方式。
阅读全文