JavaScript. Подробное руководство, 6-е издание, стр. 329
<b>jQuery.fn.println = function() {</b><b> // Объединить все аргументы в одну строку, разделив их пробелами </b><b> var msg = Array.prototype.join.call(arguments, " ");</b><b> // Обойти в цикле все элементы в объекте jQuery</b><b> this.each(function() {</b><b> // В конец каждого из них добавить строку с простым текстом и <br/>. </b><b> jQuery(this).append(document.createTextNode(msg)).append("<br/>");</b><b> });</b><b> // Вернуть объект jQuery, чтобы обеспечить возможность составления цепочек </b><b> return this;</b><b>};</b>Определив эту функцию
<b>jQuery.fn.println</b><b>println()</b><b>$( "#debug").println("x = ”, х, у = ", у);</b>В
<b>jQuery.fn</b><b>jQuery</b><b>each()</b><b>each()</b>• Не полагайтесь на идентификатор
<b>$</b><b>jQuery.noConflict()</b><b>$()</b><b>jQuery()</b><b>jQuery</b><b>$</b><b>jQuery</b><b>(function($) { // Анонимная функция с одним параметром $</b><b> // Здесь находится реализация расширения </b><b>}(jQuery)); // Вызвать функцию с объектом jQuery в виде аргумента </b>• Если метод расширения не должен возвращать какое-то свое значение, он должен возвращать объект
<b>jQuery</b><b>this</b><b>return this;</b><b>each().</b>println()<b>return this.each(function() {...});</b>• Если метод расширения принимает более двух параметров или параметров настройки, дайте пользователю метода передавать параметры в форме объекта (как мы видели на примере метода
<b>animate()</b><b>jQuery.ajax()</b>• Не засоряйте пространство имен jQuery лишними методами. Правильно оформленные расширения для библиотеки jQuery определяют минимальное количество методов, образуя непротиворечивый и удобный прикладной интерфейс. Обычно расширения jQuery определяют в объекте
<b>jQuery.fn</b>• Если расширение привязывает обработчики событий, их следует поместить в пространство имен событий (раздел 19.4.4). В качестве имени пространства имен следует использовать имя расширения.
• Если расширение использует метод
<b>data()</b>• Файл с программным кодом расширения должен иметь имя в формате «jquery.plugin.js», где подстроку «plugin» следует заменить на имя расширения.
Расширения могут определять новые вспомогательные функции, добавляя их в сам объект
<b>jQuery</b><b>// Этот метод выводит свои аргументы (с помощью метода расширения println())</b><b>// в элемент с атрибутом id= "debug". Если такой элемент отсутствует, он будет </b><b>// создан и добавлен в документ. </b><b>jQuery.debug = function() {</b><b> var elt = jQuery("#debug"); // Отыскать элемент #debug</b><b> if (elt.length == 0) { // Создать, если он отсутствует</b><b> elt = jQuery("<div id='debug'><h1>Debugging Output</h1></div>");</b><b> jQuery(document.body). append(elt);</b>