如何解决在 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 举报,一经查实,本站将立刻删除。