使js文件无法通过Web控制台访问

时间:2018-12-16 01:00:15

标签: javascript html canvas

这很可能是非常简单的。

我用canvas和js创建了一个游戏。但是我偶然发现了一个问题。由于可以访问chrome控制台中的变量和代码,因此可以更改f.ex。玩家得分达到我想要的水平。这不是很好。

是否可以通过控制台使文件和变量无法访问以供玩家使用?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以将整个脚本放入IIFE中,以便所有声明的变量都将作用于刚刚调用的函数,而不是位于顶层并且可以在任何地方访问。例如:

(function() {
  var playerName = 'bob';
  var turnCount = 1;
  // do stuff with playerName and turnCount,
  // they won't be accessible or changeable from the outside

  // you can declare functions and such here as well
  // which will also only be accessible from the inside

})();

像这样,从控制台引用playerName将会失败。

答案 1 :(得分:1)

您可以使用代理。 javascript proxy

或者您可以进行IIFE并仅公开所需的功能,例如:

    var App = (function() {

    var test = '';

    var init = function() {
        App.test = 'test';
    };

    return {
        init: init
    };

})();

或将您的属性定义为Object.defineProperty() 不可写