JavaScript:是否可以访问私有变量(即隐藏在闭包中的变量)
JavaScript: is it possible to access private variables (i.e. which have been hidden inside a closure)?
我在JavaScript中实现了一个对象作为闭包,其中一些方法是公共的,另一些是私有的:
var MyObject = (function(){
function _hiddenMethod() {
/* Do something fancy here, such as reading data
from an external source and storing it in
_hiddenVariable2 */
}
var _hiddenVariable1 = 3;
var _hiddenVariable2 = undefined;
return {
publicMethod: function() {
_hiddenMethod();
return _hiddenVariable1;
};
};
})();
有没有一种方法可以让(熟练的)用户阅读_hiddenVariable2
的内容?我认为它通过阅读JavaScript代码就知道了它的存在。
我不知道,但它可能取决于javascript引擎。
还要记住,任何人都可以调试javascript,并在闭包中设置_hiddenVariable2时注意(在_hiddenMethod中编写类似_hiddenVariable2=5的内容,尝试chrome的开发人员工具,并在_hidden Method中插入断点,您将能够看到设置_hidden Variable2的时间)。
因此,如果一个熟练的用户在V8中调试代码,他就可以知道它的当前值。
将其声明为_hiddenVariable2 = undefined;
而不是var _hiddenVariable2 = undefined;
它将可用于代码中的任何其他模块
相关文章:
- $scope变量,ng隐藏/显示
- 将值连接到隐藏变量
- 如何在Javascript中创建一个真正隐藏的变量
- 如何隐藏变量
- ASP:代码隐藏的字段变量在从更新面板中的服务器返回时丢失值
- 如何向用户隐藏javascript变量
- Javascript显示窗体的隐藏变量
- Javascript变量在IE中不起作用||用Javascript隐藏选项
- 带有隐藏字段的输出变量
- 访问代码隐藏(C#)中动态更改的js变量
- jquery显示/隐藏块中的Ruby变量
- 查找任何未定义的变量并从url字符串中隐藏
- 如何在使用servlet处理时使用javascript设置隐藏变量的值
- 获取函数的表单隐藏变量
- 隐藏<tr>包含id中的变量's
- 在Coffeescription中使用一个自调用函数来隐藏其余代码中的函数和变量,这是一个好主意吗
- 获取从函数到 php 的表单隐藏变量
- 如何根据布尔变量隐藏元素
- 为什么全局变量隐藏在整个函数体中?
- Javascript在php变量(隐藏点击)