有人可以解释一下标识符解析如何在以下情况下适用于 Javascript:
- 一个全局函数被调用。
- 调用用户定义的 javascript 对象内的函数。
您必须了解 ECMA 脚本中的上下文和范围才能理解这一点。介于两者之间的是标识符还是变量?
标识符通常被标记为窗口对象。说 String() 它实际上是 window.String()。
通常,当页面加载时,所有变量和函数都作为属性添加到窗口对象。在浏览器的情况下,窗口对象成为全局上下文(GC)。因此,当调用全局函数(这只是一个方法,没有什么像全局函数那样)被调用时,该变量只是在全局上下文中查找。因此它将识别变量。
但是,如果有一个函数在其中有一个内部函数,那么识别一个全局变量将是两个折叠,首先它将检查函数范围,然后检查全局范围。如果变量是函数变量。然后变量将始终存在于函数执行上下文(EC)中