Что ж, уже много лет, но для всех, кто оступился на этом.Вы можете использовать Object.assign в FF и Chrome.
В этом примере, когда куб создается с помощью create.Сначала Object.create (this) создает объект со свойством z, затем с Object.assign (obj, Square.create (x, y)) он вызывает метод Square.create, возвращает и добавляет его в Cube, хранящийся в obj..
var Square = {
x: 0,
y: 0,
create: function(x,y) {
var obj = Object.create(this);
obj.x = x;
obj.y = y;
return obj;
}
};
var Cube = {
z: 0,
create:function(x,y,z) {
var obj = Object.create(this);
Object.assign(obj, Square.create(x,y)); // assign(target,sources...)
obj.z = z;
return obj;
}
};
// Your code
var MyCube = Cube.create(20,30,40);
console.log(MyCube);