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

JavaScript read private variable from anonymous function

本文关键字:变量 读取 函数 JavaScript      更新时间:2023-09-26

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

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,但这不起作用。

如果不更改现有代码,这是不可能的。

正如您所提到的,您不能更改代码,也不能读取私有变量。将变量设为私有变量的原因是确保您不能从范围外读写它。如果这一切都是可能的,那么私有变量的意义和原因就消失了。