在 JavaScript 中创建一个控制台无法访问的全局变量

Create a Global Variable in JavaScript, which is not accessible to console

如何在客户端 JS 中创建一个不能从浏览器控制台访问该变量的全局变量?我尝试使用 let,它没有用(下面的代码不在函数中,它在脚本文件中)

let data={
   "data-item":"Secure Data"
};

我还尝试在 class 中添加数据并使用它的一个实例,但该实例也可以从控制台访问。该变量是一个对象,将通过用户交互动态修改,因此也不能冻结该对象。

如果标识符是全局的,则可以从控制台访问它。

如果您不想从控制台访问某些内容,则它必须不是全局的。最简单的选择是将所有内容都放入 IIFE 中。例如,把这个:

let data={
   "data-item":"Secure Data"
};
// lots and lots of functions and variables that reference data

进入这个:

(() => {
  let data={
     "data-item":"Secure Data"
  };
  // lots and lots of functions and variables that reference data
})();

然后 data 将仅在 IIFE 内限定范围,因此无法从控制台访问它,但 需要 访问它的所有内容仍然会能够看到它。