面试官:说说call、apply、bind是如何改变this的
💡
原文中文,约5500字,阅读约需13分钟。
📝
内容提要
本文介绍了JavaScript中this的显式绑定的三种方法:call、apply和bind,它们可以改变函数中this的指向。call和apply的区别在于参数的传递方式不同,bind则是创建一个新的函数并绑定this。文章还讨论了call、apply和bind在调用和结合new操作符时的影响。掌握这些基础知识对于理解JavaScript中的执行上下文、词法作用域和闭包非常重要。
🎯
关键要点
- 本文介绍了JavaScript中this的显式绑定的三种方法:call、apply和bind。
- call和apply的区别在于参数的传递方式,call接受多个参数,而apply接受一个参数数组。
- bind创建一个新的函数并绑定this,返回的函数可以在后续调用时使用。
- 掌握call、apply和bind对于理解JavaScript中的执行上下文、词法作用域和闭包非常重要。
- call函数的实现步骤包括判断调用对象、设置上下文、调用函数并返回结果。
- apply函数的实现步骤与call类似,但只接受两个参数,第二个参数为参数数组。
- bind函数的实现步骤是绑定this和固定参数,返回一个新的待执行函数。
- bind和call的主要区别在于call立即执行函数,而bind返回一个新的函数供后续执行。
- 使用bind绑定的函数可以再次使用bind进行绑定,但之前的this值会被忽略。
- 使用new操作符调用bind绑定的函数时,bind提供的this值会被忽略,参数会正常传递。
🏷️
标签
➡️