第一章: this 是什么?

JavaScript 中最令人困惑的机制之一就是 this 关键字。它是一个在每个函数作用域中自动定义的特殊标识符关键字,但即便是一些老练的 JavaScript 开发者也对它到底指向什么感到困扰。

任何足够 先进 的技术都跟魔法没有区别。— Arthur C. Clarke

JavaScript 的 this 机制实际上没有 那么 先进,但是开发者们总是在大脑中插入“复杂”和“混乱”来解释这句话,毫无疑问,如果没有清晰的理解,在 你的 困惑中 this 可能看起来就是彻头彻尾的魔法。

注意: “this”这个词是在一般的论述中极常用的代词。所以,特别是在口头论述中,很难确定我们是在将“this”作为一个代词使用,还是在将它作为一个实际的关键字标识符使用。为了表意清晰,我会总是使用 this 来代表特殊的关键字,而在其他情况下使用“this”或 this 或 this。