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

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


ну или так:

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

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект