Ну, вот общая полезная функция, которая делает это:
public static function zip(objects:Array):Object
{
var r:Object = {};
for each (var o:Object in objects)
for (var k:String in o)
r[k] = o[k];
return r;
}
Пример использования:
var obj:Object = {
"foo": 1,
"bar": 2,
"baz": 3
};
var obj2:Object = {
"bar": 4,
"baz": 6
};
var obj3:Object = {
"foo": 3,
"bar": 6
};
var result:Object = zip([obj, obj2, obj3]);
for (var k:String in result)
trace("Property:", k, result[k]);
Выход:
Property: foo 3
Property: baz 6
Property: bar 6
Примечание: это метод с потерями, поскольку результирующий объект не знает, откуда поступили отдельные свойства, и сохраняет только последнюю версию значения. Если вы хотите сохранить эту информацию, то есть другой способ сделать это, используя цепочку прототипов. Вот как, например, Flex Framework связывает настройки стиля.