Задать вопрос
lui
@lui

Function.prototype как функция заглушка?

Возьмём к примеру код, весьма типичный при асинхронных вызовах:
var doSomething = function(callback) {
  if ("function" !== typeof callback) {
    callback = Function.prototype;
  }

  // .. function body ..

  callback();
}



До этого обычно писал callback = function(){}, но сдаётся мне, что при таком подходе на каждое переопределение колбэка будет создаваться новая функция. Приведённый же выше вариант, вроде бы, должен быть поэкономнее.


Спецификации (15.3.4) на моей стороне, но при этом не покидает ощущение, что так делать не стоит.


Так как: function(){} или Function.prototype?
  • Вопрос задан
  • 4128 просмотров
Подписаться 2 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
Интересное решение, но ведь и к этому калбэку могут что-либо прикрутить. callback.ololo=function(){...} — и это ололо у всех функций, так что аккуратней.
Ответ написан
mixrin
@mixrin
Можно вот действительно простой вопрос, я чего-то непонимаю. А зачем вообще вызывать пустую функцию вместо коллбэка, если его не передали? В чем сакральный смысл?
Ответ написан
Комментировать
@Silver_Clash
А что если так:

if ("function" === typeof callback) {
    callback();
  }


ну или так:

"function" === typeof callback ? callback() : null;
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы