Показать сообщение отдельно
  #6 (permalink)  
Старый 20.01.2010, 18:16
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от B~Vladi
Можно пример?
Ну, иногда можно видеть код:

function doThis() {
  ...
}

function doThat() {
  ...
}

function foo(bar) {
  switch (bar) {
    case 'this':
      doThis();
      break;
    case 'that':
      doThat();
      break;
    ...
    default:
      ...
  }
}

foo('this');
foo('that');
...


который можно преобразовать в

var commands = {
  doThis: function () {...},
  doThat: function () {...}
};

function foo(bar) {
  return commands['do' + bar.capitalize()]();
}


Однако, это не всегда возможно. Но, в тех случаях, когда возможно - может быть достаточно эффективно в плане кода (в некоторых случаях - менее эффективно в плане памяти).
__________________
Тонкости ECMAScript
Ответить с цитированием