Показать сообщение отдельно
  #30 (permalink)  
Старый 06.03.2015, 14:49
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
Уже полностью разобрался в коде, также разобрался с конструкторами и прототипами, но вот смущает 3 строка в этом коде:
Bug.prototype.moveTo = function(direction) {
    this.direction = direction;
    var angle = {top: 0, left: 270, right: 90, bottom: 180}[direction];
    var diff = angle - (this.rotation % 360);
    //console.log(this.rotation, diff, (diff - 360));
    if (diff > 180 )
        diff = diff - 360;
    else if (diff < -180 )
        diff = diff + 360;
    
    this.rotation += diff;

    if (diff == 0) {
        // продвигаемся
        this.advance();
    }
    this.update();
};

Не могу понять что здесь происходит - вернее что происходит ясно если к примеру direction == 'left' то angle будет 270 и т.д, но вот не пойму что это за запись, вроде про объекты читал, и про массивы тоже, но это мне напоминает смесь бульдога с носорогом. Проясните пожалуйста куда копать, не обязательно в подробностях. Видимо я что то пропустил.
Ответить с цитированием