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]));
}