(вложенное свойство существует flex, в Google ничего не найдено).
Как проверить наличие obj.x.y.z - единственная опция, блокирующая попытку?
Я придумал следующее - это не сработало:
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.y.z, прежде чем вы узнаете, существует ли obj.x или obj.x.y. Я придумал следующее, что работает , но не хочу изобретать велосипед. Есть ли уже стандартный способ сделать это:
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;
}
}