function Satellite(data, planet) {
this.planet = planet;
this.x = data.x;
this.y = data.y;
this.move = function move() {
/* реализация движения спутника */
// при этом здесь доступны данные планеты
this.planet.x;
this.planet.y;
}
}
function Planet(data) {
this.radius = data.radius;
this.satellites = [];
this.x = data.x;
this.y = data.y;
for (var i = 0; i < data.satellites.length; i++) {
this.satellites.push(new Satellite(data.satellites[i], this));
}
this.move = function move() {
/* реализация движения только планеты */
// и запуск движения спутников
for (var i = 0; i < this.satellites.length; i++) {
this.satellites[i].move();
}
}
}
// данные о планетах
var data = [{
name: 'Earth',
radius: 80,
x: 100,
y: 100,
satellites: [{ // как передать названия спутников в их конструктор?
name: 'Moon',
radius: 10,
x: 20, // относительно земли
y: 20
}]
}, {
name: 'Mars',
radius: 40,
x: 160,
y: 180,
satellites: [{
name: 'Moon1',
radius: 1,
x: 14, // относительно земли
y: 18
}]
}];
// здесь экземпляры планет
var planets = [];
// создаём планеты и сохраняем их в переменную planets
for (var i = 0; i < data.length; i++) {
planets.push(new Planet(data[i]));
}