我使用Object.freeze来防止自己破坏自己的规则.当我尝试做一个坏的作业时,我希望Object.freeze跟我说话.但是,Object.freeze只是让作业静默地失败!例如,如果我这样做
- /*
- * Frozen singleton object "foo".
- */
- var foo = (function() {
- var me = {};
- me.bar = 1;
- if (Object.freeze) {
- Object.freeze(me);
- }
- return me;
- })();
- foo.bar = 2;
- console.log(foo.bar);
控制台会记录“1”,但我不知道我做了一个不好的任务.这当然可以导致我的代码中的危险意外行为,当整个点冻结对象是为了避免意外.事实上,我更可能通过不冻结对象来获得详细的错误输出,让错误的配置发生,并且由于错误的值让我的代码失败了.
我想知道JavaScript是否有任何隐藏的“不可变对象警告”的pragma在任何浏览器,所以我可以知道当我尝试突变“Object.frozen”对象.