Использование $.noop в методе уничтожения пользовательского интерфейса jQuery
Пользовательский интерфейс jQuery реализует метод уничтожения. Я не понимаю цель использования $.noop с this_.destroy()
в начале метода:
destroy: function() {
this._destroy();
//other code here...
{...}
},
_destroy: $.noop,
Может кто-нибудь объяснить это?
2 ответа
В jQuery 1.9 _destroy
добавлен метод, чтобы виджетам не приходилось вызывать базу destroy
метод. http://bugs.jqueryui.com/ticket/5056
Поскольку метод является необязательным, он по умолчанию определен как $.noop
, который определяется как
$.noop = function(){};
$.noop
это просто функция-заполнитель. В javelin.js (библиотека javascript в Facebook) он известен как "мешок с подержанным". Существует множество вариантов использования, и иногда имеет смысл просто передать функцию, которая ничего не делает, вместо того, чтобы ничего не передавать.
Подумайте о моих намерениях с этим примером.
$.ajax({
url: 'something.asmx',
success: $.noop,
error: $.noop,
complete: $.noop
});
Понятно, что единственной целью этого является отправка данных на сервер и игнорирование всех возможных сценариев. Сравните это со следующим, где намерение неоднозначно.
$.ajax({
url: 'something.asmx'
});
// future developer thinks, "hey, should this require some callback?