如果我有一个对象的引用:
var test = {};
Run Code Online (Sandbox Code Playgroud)
可能(但不是立即)有嵌套对象,如:
{level1: {level2: {level3: "level3"}}};
Run Code Online (Sandbox Code Playgroud)
在最深层嵌套的对象中测试密钥是否存在的最佳方法是什么?
alert(test.level1);收益率undefined,但alert(test.level1.level2.level3);失败了.
我现在正在做这样的事情:
if(test.level1 && test.level1.level2 && test.level1.level2.level3) {
alert(test.level1.level2.level3);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好的方法.
检查是否定义了像obj.prop.otherprop.another这样的对象属性的推荐方法是什么?
if(obj && obj.prop && obj.prop.otherprop && obj.prop.otherprop.another)
Run Code Online (Sandbox Code Playgroud)
这很好用,但足够难看.
我有一个"namespace.fun1.fun2.fun3"从客户端传递的字符串.它告诉服务器使用哪个功能.
我如何安全地运行该功能?
现在我正在做:
var runthis = string.split('.')
namespace[runthis[1]][runthis[2]][runthis[3]]
Run Code Online (Sandbox Code Playgroud)
如何安全地处理任意深度的嵌套?