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,但这不起作用。
否 不更改您拥有的代码是不可能的。
如您所述,您无法更改代码,也无法读取私有变量。将 变量设为私有的原因是确保您无法从范围 之外读取和写入它。如果可能的话,那么私有变量的意义和原因就丢失了。
我需要从匿名函数访问私有变量。此匿名函数由以下内容设置:
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,但这不起作用。
否 不更改您拥有的代码是不可能的。
如您所述,您无法更改代码,也无法读取私有变量。将 变量设为私有的原因是确保您无法从范围 之外读取和写入它。如果可能的话,那么私有变量的意义和原因就丢失了。