【发布时间】:2011-04-19 10:01:01
【问题描述】:
javascript 中的每个全局变量都是 'window' 的属性
显然,所有局部变量(以及参数)都存储为'Call object' 的属性(请参阅每个函数的第 4.6.2 章。可能只在所述函数的生命周期内存在。
基本上我希望能够做到
for (var obj in CallObject ) { // }
我可以访问包含局部变量的所述对象吗?如果可以,如何访问?或者是否有任何其他方法可以访问函数的所有局部变量。
[编辑]
事实证明,参数是函数激活对象的属性。这必须存储在某个地方。
"激活对象纯粹是一个 规范机制。它是 ECMAScript 程序不可能 访问激活对象。”
原来 ECMAScript 声明我不允许访问它。
如何访问参数属性并以某种方式链接到局部变量?
【问题讨论】:
-
在 Javascript 中没有办法做到这一点。此外,全局变量(严格来说)并不总是“窗口”的属性 - 它取决于解释器的运行位置。例如,在 V8 或 Rhino 中运行的服务器端 Javascript 程序中,没有“窗口”,但有一个扮演相同角色的“全局上下文”对象(就您的问题而言)。
标签: javascript local