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

JavaScript read private variable from anonymous function

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

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

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

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

所以,总而言之,有没有一种方法可以让我从 JavaScript 中的匿名函数访问私有变量,如果可以,如何访问?

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

不更改您拥有的代码是不可能的。

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