本地范围对象

时间:2015-02-09 11:29:50

标签: javascript

我很好奇是否在JavaScript中存在“本地范围对象”这样的事情。如果调用一个函数,它有一个上下文(this),它是调用它的对象(function f() {return this;}; obj.f = f; obj.f(); //returns obj;),以及一个在每个函数调用时创建的作用域。范围用于定义局部变量,如以下示例所示:

var globalScopeVar = 1;
(function() {
    var localScopeVar = 2;
})();

在两个范围中this引用全局上下文(通常为window),因为尚未在任何对象上调用该函数。然而,我感兴趣的是“范围对象”,即范围内变量定义的对象。对于全局范围,这通常是window,就像全局上下文一样:

window.globalScopeVar; // 1

但是,函数调用的本地范围内的“范围对象”是什么?它甚至存在还是可以访问?有没有办法访问定义localScopeVar的对象?

(function() {
    var localScopeVar = 2;
    localScope.localScopeVar; // 2
})();

此示例中的localScope是什么?

1 个答案:

答案 0 :(得分:1)

localScopeLexical Environment

作为{q = 1}}问题的答案,ECMAScript语言规范说明如下:

  

ECMAScript程序不可能直接访问或   操纵这些价值观。