JavaScript从匿名函数读取私有变量

时间:2016-05-16 03:38:59

标签: javascript variables private anonymous-function

我需要从匿名函数访问私有变量。此匿名函数由以下设置:

coolObject = new (function(){
    this.public = "public";
    var private = "secrets";

    // General functions here, no getter or setter for private
})();

我可以通过coolObject.publicconsole.log(coolObject.public)轻松读取和写入coolObject.public = "newValue",但如何对私有变量执行相同操作?另一件事是我无法向构造函数添加代码,coolObject将始终最初定义为这样。

所以,总结一下,有没有办法可以从JavaScript中的匿名函数访问私有变量,如果是这样,怎么办?

编辑:我尝试通过coolObject.getPrivate = function(){return private;};创建getter和setter,但这不起作用。

1 个答案:

答案 0 :(得分:2)

如果不更改您拥有的代码,则无法实现。

正如您所提到的,您无法更改代码,您无法读取私有变量。将变量设为私有的原因是为了确保您无法从范围之外读取和写入。如果可能的话,那么私有变量的含义和原因就会丢失。