javascript – 获取node.js或V8中的所有值的值

例如,如果我们假设以下代码
var f = function() { return 'hello world' };
var x = 10;
var y = 314;

var g = function() {
    var buf = [],xx = x;
    while (xx--)
        buf.append(f() + ' ');
    return buf.join('');
}

我可以用g.toString()获得实际的“code”作为一个g的字符串.然而,这显然不会得到f和x的关闭g的成员(如果我没有正确使用这些术语,那么抱歉)

有什么方法查询一个函数关闭它的内容吗?理想情况下,我可以得到一个对象,如:

{ 'f' : f,'x': x } // note that `y` is not here

如果我不得不放弃C与V8的特殊交互,那没关系 – 尽管以纯粹的JavaScript做的这一切将是最好的.

我知道这是一个奇怪的问题 – 但我确实有一个合理的理由想要这个!

解决方法

我发现 this discussion的V8关闭实现启发.听起来像您正在寻找的C对象是 Context.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...