> Which is the right plugin writting way?
Of course, there isn't any :)
In javascript you can structure your code in almost countless ways.
For a simple plugin here's what you need:
http://www.learningjquery.com/2007/10/a-plugin-development-pattern
but if you want to write object oriented plugins it's a bit more
complicated (if you look at my profile or search on the list there are
some quite long discussion about it) - though if you don't really know
what is private and public just go for the link above. For a really
good and short introduction to javascript I'd advise watching Douglas
Crockford's videos on Yahoo Theatre. Briefly, the scope of the
variable (or function) will be the function/closure it was declared
in. This is the key to understand the differencies above.

$myObj.fn.extend = $myObj.extend = $.extend
I haven't seen this before but it is actually a very smart thing: it
reuses jquery's extend function, which will work on any object because
it uses the `this` keyword, so it will be able to extend $myObj too.
(see here what extend is used for: 
http://docs.jquery.com/Utilities/jQuery.extend).
$myObj.fn is most likely a reference to $myObj.prototype but it's not
indicated in your code above.

Hope I could help a bit, the mailing seems to be dead during the
holidays :)

On Dec 28, 12:11 pm, Saledan <bastil...@gmail.com> wrote:
> up, please!
>
> bye
> max
>
> On 26 Dic, 12:19, Saledan <bastil...@gmail.com> wrote:
>
> > Hi,
> > i'm trying to write a jQuery plugin, i have read some posts, documents
> > and other plugin code, but i don't understand the right standard to
> > write a plugin.
> > I found some patterns...
>
> > == example 1==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       // do something
> >     });
> >   };
>
> > })(jQuery);
>
> > == example 2==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       // do something
> >     });
> >   };
> >   // private function
> >   function functionA () {..do something..};
>
> > })(jQuery);
>
> > == example 3==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       // do something
> >     });
> >   };
> >   // Public function?!?
> >   $.fn.myPlugin.functionA () {..do something..}
>
> > })(jQuery);
>
> > == example 4==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       // do something
> >     });
> >   };
>
> >   $.extend(myPlugin.prototype, {
> >     functionA : function() {..do something..},
> >     functionB : function() {..do something..}
> >   }
>
> > })(jQuery);
>
> > == example 5==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       // do something
> >       var functionA = function () {..do something..}
> >     });
> >   };
>
> > })(jQuery);
>
> > == example 6==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       // do something
> >     });
> >   };
> >   $.fn.extend ({
> >     functionA : function () {..do something..}
> >   });
>
> > })(jQuery);
>
> > == example 7==
> > (function($) {
> >   $.fn.myPlugin = function(o) {
> >     return this.each(function() {
> >       new myObj();
> >     });
> >   };
>
> >   $.myObj = function () {..do something..};
> >   $myObj = $.myObj;
> >   $myObj.fn.extend = $myObj.extend = $.extend;
> >   $myObj.fn.extend ({
> >     functionA: function() {..do something..},
> >     functionB: function() {..do something..}
> >   });
> >   $myObj.extend ({
> >     functionC: function() {..do something..}
> >   });
>
> > })(jQuery);
>
> > Which is the right plugin writting way?
> > I think that the last example is well done... but i don't understand
> > this line $myObj.fn.extend = $myObj.extend = $.extend; and the
> > differents between $myObj.fn.extend and $myObj.extend .. public or
> > private function? the first is for public function?
>
> > Please may you help me?
>
> > Many thanks
> > bye
> > Max

Reply via email to