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