javascript中的每个全局变量都是'window'的属性
显然所有局部变量(以及参数)都存储为'Call object'的属性(参见每个函数的第4.6.2节。可能只在所述函数的生命周期内存在。
基本上我希望能够做到
for (var obj in CallObject ) { // }
我可以访问包含局部变量的所述对象,如果是,如何?或者,还有其他方法可以访问函数的所有局部变量。
[编辑]
事实证明,arguments是函数Activation对象的一个属性。这必须存储在某个地方。
“激活对象纯粹是一个 规范机制。它是 ECMAScript程序不可能 访问激活对象。“
结果显示ECMAScript状态我不允许访问它。
如何访问参数属性并以某种方式链接到局部变量?
答案 0 :(得分:3)
没有。在任何JavaScript的浏览器实现中都无法做到这一点。
理论上,实现可以提供扩展以允许代码检查当前的Variable对象(也就是函数中的Activation对象;“Call object”是由Flanagan组成的术语,ECMAScript中没有提到任何内容spec)但我知道没有实现这样做。
答案 1 :(得分:1)
你会在每个函数中得到一个名为“arguments”的隐式数组,但除此之外没有这样的东西。