我经常有这样的情况:
var obj = { field: 2 };
并在代码中:
do_something( obj.fiel ); // note: field spelt wrong
ie 属性输入错误。我想尽早发现这些错误。
我想密封对象,即
obj = Object.seal(obj);
但这似乎只能防止错误obj.fiel = 2;
,并且在简单读取字段时不会引发错误。
有什么方法可以锁定对象,以便检测并抛出对缺失属性的任何读取访问?
谢谢,保罗
编辑:有关情况的更多信息
- 纯javascript,没有编译器。
- 没有经验的程序员用于数学计算的库。我想限制他们的错误。我可以发现一个拼写错误的变量,但他们不能。
- 希望尽可能早地检测到尽可能多的错误。即在编译时(最好),在运行时一旦遇到拼写错误(ok)就会抛出错误,或者在分析结果并发现不正确的计算输出时(非常非常糟糕)。
- 单元测试并不是一个真正的选择,因为数学的目的是发现新知识,因此数学的答案通常是事先不知道的。再一次,没有经验的程序员很难教他们单元测试。