微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 JavaScript 中创建一个全局变量,控制台无法访问

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

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

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

解决方法

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

如果您希望无法从控制台访问某些内容,则它必须不是全局的。最简单的选择是将所有内容都放入 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 范围内,所以它不能从控制台访问,但是所有需要访问它的东西仍然可以看到它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。