@nsonso

Зачем создавать новую переменную, чтобы присвоить ей результат вызова функции в javasctipt?

Вопрос. Есть код:

var taxi = { make: "Webville Motors", model: "Taxi", year: 1955,};

function prequal(car) { if (car.year > 1960) { return false; } return true;}

var worthALook = prequal(taxi);


Зачем, в данном случае, нужна переменная worthALook? Ведь код отлично работает, если вместо последней строчки написано просто:

prequal(taxi).

Это - учебный пример, но в чем вообще может быть смысл создания новой переменной? Часто вижу в учебном коде именно такое решение.
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 2
IonDen
@IonDen
JavaScript developer. IonDen.com
По сути этот прием должен научить вас экономить ресурсы при разработке приложений.

Суть приема в том, что, если ваш код зависит от результата каких то вычислений, то эти вычисления нужно выполнять как можно меньше раз, в идеале 1 раз.

В вашем примере, никто не помешает вам писать код так:
if (prequel(taxi)) {
    // bla bla
}

И это будет вполне нормальный код, но, при этом одна и та же функция prequel() будет выполняться каждый раз, когда вы захотите использовать это уловие.

Проблема начнет проявляться тогда, когда вы начнете писать большие и сложные приложения. Там подобные огрехи проектирования будут накапливаться и постепенно приведут к тому, что ваш код будет работать медленно.
Ответ написан
Комментировать
akzhan
@akzhan
Особого смысла нет.

Более корректно писать

taxi.newer_than = function(year) {
   return (this.year > year);
}

if ( taxi.newer_than(1960) ) {
  // do something
}
else {
  // do other
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы