Я обнаружил метод расширения основной функции инициализации jQuery (которая вызывается каждый раз, когда вы используете функцию $ () или jQuery ()). Это невозможно при использовании обычного шаблона прокси, но следующий код заставляет его работать:
var origInit = jQuery.fn.init;
jQuery.fn.init = function(selector, context, rootjQuery) {
if (some condition) {
//custom code here, possibly returning some other jQuery object than
//what jQuery would normally return
}
return origInit.call(jQuery.fn, selector, context, rootjQuery);
}
У меня вопрос, где это может быть полезно, так как я осознал, что мое первоначальное намерение использовать его для кэширования селекторов было проблематичным (поскольку это могло повлиять на поведение других плагинов - в итоге я использовал отдельную функцию для кэширования).
Так что я решил поделиться этим методом, и мне также любопытно услышать другие идеи о его возможном использовании. Я подумал, что, возможно, его можно будет использовать для поддержки пользовательских селекторов, хотя я не уверен, когда именно это потребуется, поскольку jQuery уже предлагает множество селекторов.