在Node.js中,如何检查函数的局部变量?

时间:2015-03-30 05:38:45

标签: node.js reflection introspection

如何查看函数的本地?

例如在这里,我可以看到它将返回a+b,但如果它来自某个地方的lib,那么我不知道这些是什么:

fn = function() {
  var a=123, b=456;
  return function() { return a + b; };
}();

为了比较,我将在Ruby中执行此操作:

fn = lambda do
  a, b = 123, 456
  lambda { a + b }
end.call

fn.binding.local_variable_get(:a) # => 123
fn.binding.local_variable_get(:b) # => 456

我愿意切换到io.js,如果它可以给我这种反映系统的能力。


修改

看起来Javascript无法做到这一点:(我不明白你们怎么弄清楚如何使用你以前从未见过的界面!

  

词法环境和环境记录值是纯粹的规范机制,不需要与ECMAScript实现的任何特定人工制品相对应。 ECMAScript程序不可能直接访问或操纵这些值。

- https://people.mozilla.org/~jorendorff/es6-draft.html#sec-lexical-environments

虽然看起来有an interface to talk to the debugger。可以用它来获取信息吗?

0 个答案:

没有答案