日期:2014-05-16  浏览次数:20408 次

控制台能否直接访问和修改函数内部变量和方法?
如果有全局变量但是我不希望用户随便拿浏览器的调试控制台去修改他们,可否把所有全局变量都封在一个函数里面呢?
这样的话,用户还能访问和修改这些变量吗?
比如这个样子

(function ()
{
var a = 5, b = new Array();
})();

然后我把所有代码全放这个匿名函数里面。
比如

(function ()
{
var i = 5;
var add = function () {
i++;
}
var sub = function () {
i--;
}
})();

如果要全局方法,那么去掉var,直接定义成全局方法。

(function ()
{
var i = 5;
add = function () {
i++;
}
sub = function () {
i--;
}
})();


感觉这样对数据有点点保护作用。。但是不知道有没有方法照样能访问这个匿名函数里的局部变量?
比如有没有可能向这个匿名函数添加一个内部方法的?

如果用户照样可以访问和修改这些变量,那怎么可以不让用户修改呢?
JavaScript 控制台 全局变量

------解决方案--------------------
public 才可以访问
私有的是访问不了的
------解决方案--------------------
用户只要想修改就可以修改,只是修改难度大小的问题,大不了可以像修改单机游戏一样直接查找浏览器内存地址
------解决方案--------------------
(function () {
    var a = 5, b = new Array();
    gets = function() {
      return a
    }
    
})();

gets();

------解决方案--------------------
JS的话  无论你怎么封  用心的人还是可以通过断点来跟的
------解决方案--------------------

(function () {
    var a = 5, b = new Array();
    gets = function() {
      return a
    }
     
})();
 
gets();


想取得a,b有些方法很简单的,记住js的覆盖,后声明的起作用。