javascript中的每个全局变量都是“window”的属性。
显然,所有局部变量(以及参数)都存储为“呼叫对象”的属性(参见每个函数的4.6.2章)。只存在于所述功能的生命周期内。
基本上我想要
for (var obj in CallObject ) { // }我可以访问包含局部变量的所述对象吗?如果可以,那么如何访问?或者,是否有其他方法访问函数的所有局部变量。
编辑
事实证明,参数是函数的激活对象的属性。这个必须存放在某个地方。
激活对象纯粹是一种规范机制。ECMAScript程序不可能访问激活对象。
原来,ECMAScript声明我不允许访问它。
如何访问参数属性并以某种方式将其链接到局部变量?
发布于 2010-09-30 15:31:41
不是的。在JavaScript的任何浏览器实现中都无法做到这一点。
理论上,实现可以提供一个扩展,允许代码检查当前变量对象(也称为函数中的Activation;"Call object“是由Flanagan组成的术语,在ECMAScript规范中任何地方都没有提到),但我所知道的任何实现都没有这样做。
发布于 2010-09-30 15:33:13
在每个函数中都有一个名为“参数”的隐式数组,但除此之外没有这样的东西。
https://stackoverflow.com/questions/3831932
复制相似问题