搞懂 Javascript 中的this(包含apply、call、bind)

💡 原文中文,约3600字,阅读约需9分钟。
📝

内容提要

JavaScript中的关键字this是一个复杂机制,指向执行时的当前对象。其绑定方式取决于函数的调用方式,包括作为对象方法、普通函数、构造器调用以及使用call或apply。eval和with可以在运行时修改作用域,但不推荐使用。

Q&A

JavaScript中的this指向什么?

this指向执行时的当前对象。

如何使用call和apply改变this的指向?

call和apply可以动态改变函数的this指向,apply接受数组作为参数,call接受不固定数量的参数。

构造器调用时this指向哪里?

构造器调用时,this指向返回的对象,除非显式返回一个对象。

普通函数调用时this指向哪个对象?

普通函数调用时,this指向全局对象。

bind方法的作用是什么?

bind方法修改this后返回一个新的函数,但不会立即执行。

eval和with在JavaScript中有什么风险?

eval和with可以在运行时修改作用域,但不推荐使用,可能导致性能问题和难以预料的错误。

🏷️

标签

➡️

继续阅读