我很好奇是否在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
是什么?
答案 0 :(得分:1)