我想知道是否有任何方法可以确保在Node.js程序中错误地覆盖某些变量。
由于无法像Java一样将var设置为final
,因此我没有看到任何方法来确保可以从任何地方覆盖的全局的稳定性,甚至可以从模板文件中删除EJS。
非回归测试,代码审查,包的使用以及一些方式来检测或避免此类错误,但我想知道Node中是否可以使用更强大的东西。
答案 0 :(得分:0)
您可以创建不可写或冻结的对象
var obj = {
test : 'test'
}
Object.freeze(obj);
obj.test = 'something else';
console.log(obj.test); // still "test"
据我所知,无法锁定变量,只能锁定对象的属性
答案 1 :(得分:0)
除了其他人提到的Object.freeze
之外,node.js还应该支持const
关键字,至少在启用es6的情况下运行。
这是针对块范围的变量,而不是属性。
或者Object.defineProperty
可用于定义不可写,不可配置的属性。这也应该适用于模块或全局对象,尽管我自己没有测试过它。