Я не знаю о пользовательском интерфейсе jQuery, но в целом вы переопределяете функцию:
(function() {
var _oldFunc = _renderItem;
_renderItem = function(ul,item) {
// do your thing
// and optionally call the original function:
return _oldFunc(ul,item);
}
})();
Причина, по которой это заключено в анонимную функцию, заключается в создании замыкания для хранения исходной функции. Таким образом, он никогда не будет мешать глобальным переменным.
EDIT
Чтобы сделать это для fn на виджете пользовательского интерфейса jQuery, используйте следующий синтаксис:
К вашему сведению: способ получить функцию такой:
function monkeyPatchAutocomplete() {
// don't really need this, but in case I did, I could store it and chain
var oldFn = $.ui.autocomplete.prototype._renderItem;
$.ui.autocomplete.prototype._renderItem = function( ul, item) {
// whatever
};
}