call()、apply()、bind()方法的区别和相似点
一、切换函数执行的上下文环境(context),即 this 绑定的对象。
1.call() 方法是预定义的 JavaScript 方法。
2.apply() 方法接受数组形式的参数。编写用于不同对象的方法。
3.bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,
函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值,
例如:f.bind(obj),实际上可以理解为obj.f(),这时f函数体内的this自然指向的是obj;
区别:
call、bind、apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了:
1.call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔,直接放到后面
2.apply 的所有参数都必须放在一个数组里面传进去
3.bind 返回是函数,没有立即执行(需要手动执行)并且可以将参数在执行的时候添加
本文详细介绍了JavaScript中call、apply、bind方法的用途,它们都能改变函数执行时的上下文环境,但参数传递方式有所不同。call接受逗号分隔的参数,apply接收参数数组,bind则返回一个预绑定this的新函数。此外,bind不会立即执行,而call和apply会立即执行。在不指定this的情况下,它们在Node和浏览器环境中会指向全局对象。了解这些区别有助于更好地利用这三种方法进行函数调用和上下文控制。

219

被折叠的 条评论
为什么被折叠?



