Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2017, 14:23
Интересующийся
Отправить личное сообщение для Negotiant Посмотреть профиль Найти все сообщения от Negotiant
 
Регистрация: 27.03.2017
Сообщений: 28

Как передать названия спутников в конструктор?
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]));
}
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2017, 16:33
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,733

Сообщение от Negotiant
Как передать названия спутников в конструктор?
Данные передаются в 23-й строке, сохранить их можно так:
function Satellite(data, planet) {
  this.planet = planet;
  *!*this.name=data.name;*/!*
  this.x = data.x;
  this.y = data.y;
 
  this.move = function move() {
    /* реализация движения спутника */
 
    // при этом здесь доступны данные планеты
    this.planet.x;
    this.planet.y;
  }
}
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2017, 16:51
Интересующийся
Отправить личное сообщение для Negotiant Посмотреть профиль Найти все сообщения от Negotiant
 
Регистрация: 27.03.2017
Сообщений: 28

Да, огромное спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как c функцией .ajax() передать несколько значений в php? Faab jQuery 11 19.11.2013 12:03
Flot Как передать переменную в функцию отрисовки точки на графике Ren jQuery 0 20.06.2012 14:16
Ребят как передать значение из php в src название изображения! SpiritDark Элементы интерфейса 4 14.05.2012 14:02
как передать данные из json в названия параметров shultz1988 Общие вопросы Javascript 2 20.07.2011 11:15
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11