如何使无法通过浏览器控制台更改变量

How to make it impossible to change variables throught browser console

我正在编写一个应该回答问题的程序。 正确答案的数量由一个名为:

的变量保存
correctAnswers

不过像现在这样,我可以改变

的值
correctAnswers

只需输入

correctAnswers = (new Value)

在控制台中。我不希望这成为可能,有没有办法可以禁用通过控制台更改变量值的可能性?

无法阻止某人更改变量值,您只能加大难度。首先,将变量放在函数中,这样您就无法像这样在函数外部访问它: (function(){}());

您的另一个选择是加密代码,但我不确定它的效果如何,从未尝试过。无论如何,所有这些选项只会使它变得更难但并非不可能,您始终需要在服务器端确认数据。

TL;DR:您不能在客户端执行此操作。

尝试使用闭包。

var Test = (function(){
    var correctAnswers=0;

    return {
        getCorrectAnswers: function(){ return correctAnswers; }
    }
})();

// Enter the following in console
correctAnswers = 2;
Test.getCorrectAnswers(); // will always return 0;