Javascript 使用命名空间对象的未定义变量不会引发错误

Javascript 使用命名空间对象的未定义变量不会引发错误,javascript,Javascript,我有这个物体“一,二”。它具有公共变量和功能。 我使用一个函数 ONE.TWO.calc (1,2,3); 我有一个公共变量“我的解决方案”; 如果我使用: myoperation = ONE.TWO.mysolution; Chrome上没有错误提示(我已经设置了“暂停异常”) 嗯,有什么办法解决这个问题吗?我想要一个错误检测。对象的任何未定义属性都只是未定义。在某种程度上,这就是它的“价值”。访问时不能强制抛出错误。您必须检查属性是否===未定义,或者接受它可能发生并围绕它构建代码

我有这个物体“一,二”。它具有公共变量和功能。 我使用一个函数

ONE.TWO.calc (1,2,3);
我有一个公共变量“我的解决方案”; 如果我使用:

 myoperation = ONE.TWO.mysolution; 
Chrome上没有错误提示(我已经设置了“暂停异常”)


嗯,有什么办法解决这个问题吗?我想要一个错误检测。

对象的任何未定义属性都只是<代码>未定义。在某种程度上,这就是它的“价值”。访问时不能强制抛出错误。您必须检查属性是否
===未定义
,或者接受它可能发生并围绕它构建代码

或者,您可以为所有属性构建getter。或者,如果请求的属性未定义,则一个常规属性getter将抛出错误。但这不太实际,所以我不建议这样做


编辑:您可能会感兴趣的是,虽然可以传递未定义的属性(分配它,用作函数参数),但不能将其作为函数调用并访问其子属性。例如,
obj.undefinedProperty.bar
将生成错误。正如
obj.unfinedfunction()
一样

为什么会发生错误?当然是Chrome调试错误生成!这不是Javascript中的错误。您可能想看看一些强类型实现,如。