(嵌套属性存在flex在谷歌中没有任何相关性。)
如何检查obj.x.y.z的存在 - 尝试catch块是唯一的选择?
我想出了以下内容 - 它不起作用:
private function exists(obj:Object, ... args):Boolean {
for (var n:int=0; n<args.length; n++) {
if (obj[args[n]] == undefined)
return false;
if (n<(length-1))
obj = obj[args[n]];
}
return true;
}
第二部分是在你知道obj.x或obj.x.y是否存在之前分配给obj.x.y.z。我想出了以下做的工作,但不想重新发明轮子。是否已经有一种标准的方法:
private function set(obj_set:Object, obj:Object, ...args):void {
for (var n:int=0; n<args.length; n++) {
if (n < args.length-1) {
if (!obj.hasOwnProperty(args[n]))
obj[args[n]] = new Object();
obj = obj[args[n]];
continue;
}
obj[args[n]] = obj_set;
}
}
答案 0 :(得分:0)
不,在AS3中没有标准的方法。你需要一个像这样的自定义助手才能做到这一点。