什么是 this
?
我们已经列举了各种不正确的臆想,现在让我们把注意力转移到 this
机制是如何真正工作的。
我们早先说过,this
不是编写时绑定,而是运行时绑定。它依赖于函数调用的上下文条件。this
绑定与函数声明的位置没有任何关系,而与函数被调用的方式紧密相连。
当一个函数被调用时,会建立一个称为执行环境的活动记录。这个记录包含函数是从何处(调用栈 —— call-stack)被调用的,函数是 如何 被调用的,被传递了什么参数等信息。这个记录的属性之一,就是在函数执行期间将被使用的 this
引用。
下一章中,我们将会学习寻找函数的 调用点(call-site) 来判定它的执行如何绑定 this
。