Обтекание строк связано с созданием анонимной функции и последующим ее вызовом.jQuery передается и затем связывается с $, так что ваш плагин все еще будет работать в режиме jQuery noConflict ($ не будет определен).Анонимная функция - это то, что наш плагин получает локальную область видимости, поэтому мы не можем случайно определить глобальные переменные, поскольку они плохие.
Еще один момент, как для разработчика плагина jQuery, я бы не стал предлагать разработку плагинов сэтот код: $ .extend ($. fn, {pluginName: function (options) ...});
Все, что нужно будет сделать, это просто добавить ряд функций в прототип jQuery Object, например,Вы можете вызвать $ ('# el'). pluginName ().Это хорошо, если ваш плагин очень прост, но его может быть довольно сложно поддерживать, так как ваш плагин все еще определяется процедурным способом, а не объектно-ориентированным.
Лучшим подходом было бы что-то вроде этого:
$.pluginName = {
init: function(){
var myPlugin = $.pluginName;
// Attach jQuery Object Prototype (fn function)
$.fn.pluginName = myPlugin.fn;
// Attach DomReady
$(function(){
myPlugin.domReady();
});
}
domReady: function(){},
fn: function(){
// your jQuery object function
}
});
// Initialise our Plugin
$.pluginName.init();
Этот подход также позволяет людям легко расширять ваш плагин, если он не работает в некоторой области, или самостоятельно исправлять код, не касаясь вашего.Например, я мог бы перезаписать вашу функцию fn следующим образом: $ .pluginName.fn = fixedFnFunction ();
Это отлично подходит для развития сообщества.Мне также нравится это, поскольку он сводит к минимуму то, что содержится в прототипе jQuery Object.
Я ищу статьи, которые я использовал для справки, и опубликую их, когда будет готов.