在 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 内限定范围,因此无法从控制台访问它,但 需要 访问它的所有内容仍然会能够看到它。
如何在客户端 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 内限定范围,因此无法从控制台访问它,但 需要 访问它的所有内容仍然会能够看到它。