提问者:小点点

“this”关键字是如何工作的?


我注意到,对于this关键字是什么以及如何在堆栈溢出站点上的JavaScript中正确(或不正确)使用该关键字,似乎没有明确的解释。

我目睹了它的一些非常奇怪的行为,我不明白为什么会发生这种情况。

这个是如何工作的,什么时候应该使用它?


共3个答案

匿名用户

我建议先阅读Mike West的文章JavaScript(镜像)中的作用域。 它是对this和JavaScript中作用域链概念的出色,友好的介绍。

一旦您开始习惯this,规则实际上非常简单。 ECMAScript 5.1标准定义了以下:

code>this关键字计算为当前执行上下文的ThisBinding的值

这种绑定是JavaScript解释器在计算JavaScript代码时维护的,就像保存对象引用的特殊CPU寄存器一样。 只要在以下三种不同情况中的一种情况下建立执行上下文,解释器就会更新ThisBinding:

这种情况适用于在顶层求值的JavaScript代码,例如直接在