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?
  • Вопрос задан
  • 4080 просмотров
Пригласить эксперта
Ответы на вопрос 3
Интересное решение, но ведь и к этому калбэку могут что-либо прикрутить. callback.ololo=function(){...} — и это ололо у всех функций, так что аккуратней.
Ответ написан
mixrin
@mixrin
Можно вот действительно простой вопрос, я чего-то непонимаю. А зачем вообще вызывать пустую функцию вместо коллбэка, если его не передали? В чем сакральный смысл?
Ответ написан
Комментировать
@Silver_Clash
А что если так:

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


ну или так:

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

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

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