是否可以迭代JavaScript闭包中的所有属性?

是否可以迭代JavaScript闭包中的所有属性?,javascript,closures,Javascript,Closures,通过这个循环,我迭代对象的所有属性。有可能找到存在哪些局部/闭包变量吗?没有,没有办法检查作用域的内容,因为没有办法获得它的句柄。(全局作用域除外,因为有很多方法可以获得它的句柄。) 我的意思是,没有办法让运行时向您提供对作用域的引用,就好像它是一个JavaScript对象一样。因此,无法探索这些属性;换言之,“for…in”循环的右侧没有任何内容 编辑-如果可以这样做,它将允许一些有趣的编码技术。可以在函数原型上编写实用函数,比如新的ish“.bind()”方法,这样返回的函数就能够检查闭包范

通过这个循环,我迭代对象的所有属性。有可能找到存在哪些局部/闭包变量吗?

没有,没有办法检查作用域的内容,因为没有办法获得它的句柄。(全局作用域除外,因为有很多方法可以获得它的句柄。)

我的意思是,没有办法让运行时向您提供对作用域的引用,就好像它是一个JavaScript对象一样。因此,无法探索这些属性;换言之,“for…in”循环的右侧没有任何内容


编辑-如果可以这样做,它将允许一些有趣的编码技术。可以在函数原型上编写实用函数,比如新的ish“.bind()”方法,这样返回的函数就能够检查闭包范围中的某些特殊变量,以便进行调试或记录或用于其他目的。因此,制造功能的服务可以根据客户机环境的性质做一些更“强大”的事情。(我不知道哪种语言会允许这样。)

你是什么意思?对象没有闭包。我认为问题是:你能迭代闭包范围内的所有变量吗。我的答案是否定的,你怎么能引用闭包呢?你的意思是想知道存在哪些局部/闭包变量吗?是的,这就是我的意思+1,我所知道的唯一例外是Rhino,它提供了一种访问作用域链中最顶层对象的方法,例如:
var scope=function(){}啊,是的,谢谢,我记得不久前读到过这篇文章,但我并不真正理解他们在说什么:-)Chrome和FireBug调试器允许人们研究闭包;我怀疑附加组件有一个语言没有提供的优势??附加组件可以访问浏览器内部;显然,解释器本身知道如何处理激活对象:-)我不知道这些调试器环境的具体功能。
for ( var i in this ) { console.log(i); }