JavaScript中apply、call和bind有何本质区别,导致它们在函数调用时表现出不同行为?
- 内容介绍
- 文章标签
- 相关推荐
本文共计772个文字,预计阅读时间需要4分钟。
JavaScript中apply、call和bind的区别:
在JS中,apply、call和bind都是用来改变函数的this指向的。它们有相似之处,但也有各自的特点。
首先总结一下它们的相似之处:
1. 都是用来改变函数的this指向的。
2.都可以传入参数。
接下来,详细说明它们各自的特点:
1. call:
- 语法:fun.call(thisArg, [arg1[, arg2[, …]]])- 参数:thisArg指定fun函数的this指向,后面的参数是一个列表。- 特点:call方法在调用函数时立即执行,并且传入的参数是一个列表。2. apply:- 语法:fun.apply(thisArg, [argsArray])- 参数:thisArg指定fun函数的this指向,argsArray是一个包含多个参数的数组。- 特点:apply方法在调用函数时立即执行,并且传入的参数是一个数组。
3. bind:- 语法:fun.bind(thisArg, [arg1[, arg2[, …]]])- 参数:thisArg指定fun函数的this指向,后面的参数是一个列表。- 特点:bind方法不会立即执行函数,而是返回一个新的函数,新的函数在调用时才会执行。返回的新函数可以接受额外的参数,这些参数会作为原函数的参数传递。
本文共计772个文字,预计阅读时间需要4分钟。
JavaScript中apply、call和bind的区别:
在JS中,apply、call和bind都是用来改变函数的this指向的。它们有相似之处,但也有各自的特点。
首先总结一下它们的相似之处:
1. 都是用来改变函数的this指向的。
2.都可以传入参数。
接下来,详细说明它们各自的特点:
1. call:
- 语法:fun.call(thisArg, [arg1[, arg2[, …]]])- 参数:thisArg指定fun函数的this指向,后面的参数是一个列表。- 特点:call方法在调用函数时立即执行,并且传入的参数是一个列表。2. apply:- 语法:fun.apply(thisArg, [argsArray])- 参数:thisArg指定fun函数的this指向,argsArray是一个包含多个参数的数组。- 特点:apply方法在调用函数时立即执行,并且传入的参数是一个数组。
3. bind:- 语法:fun.bind(thisArg, [arg1[, arg2[, …]]])- 参数:thisArg指定fun函数的this指向,后面的参数是一个列表。- 特点:bind方法不会立即执行函数,而是返回一个新的函数,新的函数在调用时才会执行。返回的新函数可以接受额外的参数,这些参数会作为原函数的参数传递。

