从外部访问JavaScript闭包

时间:2015-01-13 19:00:52

标签: javascript closures

我有一个JavaScript库,它实现了带有闭包的“私有字段”,类似于:

function makePublicInterface()
{
    var private = 17;

    return {
        foo: function() { console.log(private); }  
    };
}

我有一个由该函数返回的对象:

    var public = makePublicInterface();

对于'公共',有没有办法以某种方式访问​​'私人'? Chrome devtool当然可以,但我没有看到以编程方式执行此操作的方法,对象或函数中没有任何内容可以做到这一点。

这纯粹是一个语言问题,我可以很好地为这个特定的库添加一个访问器方法。

2 个答案:

答案 0 :(得分:0)

您创建的API的客户端无法访问该变量。但是,如果此代码在浏览器中执行,则现代调试工具可以在调试器处于执行范围内时访问此值。

Further Reading

答案 1 :(得分:0)

你不能。

虽然,您可以通过控制台调试脚本执行来查看和编辑它。