访问所有本地变量

时间:2010-09-30 15:08:31

标签: javascript local

javascript中的每个全局变量都是'window'的属性

显然所有局部变量(以及参数)都存储为'Call object'的属性(参见每个函数的第4.6.2节。可能只在所述函数的生命周期内存在。

基本上我希望能够做到

for (var obj in CallObject ) { // }

我可以访问包含局部变量的所述对象,如果是,如何?或者,还有其他方法可以访问函数的所有局部变量。

[编辑]

事实证明,arguments是函数Activation对象的一个​​属性。这必须存储在某个地方。

  

“激活对象纯粹是一个   规范机制。它是   ECMAScript程序不可能   访问激活对象。“

结果显示ECMAScript状态我不允许访问它。

如何访问参数属性并以某种方式链接到局部变量?

2 个答案:

答案 0 :(得分:3)

没有。在任何JavaScript的浏览器实现中都无法做到这一点。

理论上,实现可以提供扩展以允许代码检查当前的Variable对象(也就是函数中的Activation对象;“Call object”是由Flanagan组成的术语,ECMAScript中没有提到任何内容spec)但我知道没有实现这样做。

答案 1 :(得分:1)

你会在每个函数中得到一个名为“arguments”的隐式数组,但除此之外没有这样的东西。