从ES5开始,我们可以使用Object.freeze()
来锁定对象。
但是如果你在sloppy模式下运行JS,除非你激活严格模式,否则任何对属性的写入都会无声地失败。
但是你需要在哪里设置它?我使用模块系统(node.js / amd),因此涉及大量文件/范围:
其中哪一个必须(继承)a'使用严格的'指令触发错误?
答案 0 :(得分:2)
最初创建对象的范围。
没有。那没关系。
在对象上调用Object.freeze()的范围。
仅在freeze
投掷时才有意义。
尝试更改对象属性的范围。
是。当评估的引用是严格的时,[[Put]]
会抛出,引用由property accessors构造,如下所示:
7。如果正在评估的语法生成包含在严格模式代码中,则let strict为true,否则let strict为false。
8。返回类型为Reference的值,其基值为baseValue,其引用名称为propertyNameString,其严格模式标志为strict。
全球范围
没有。你不能严格要求“全球范围”。严格性是程序代码的属性,其中最高级别的单元是“程序代码” - 在您的情况下是模块文件。