Hey Rob Actually the plugin wrap all your code inside the `$.secret` closure. I think you would not use two plugins with the same name right? But you are right, a rare namespace would do the trick too.
ben :) On Mon, May 2, 2011 at 8:01 AM, RobG <[email protected]> wrote: > > > On Apr 6, 10:47 pm, ben <[email protected]> wrote: > > No one likes globals in javascript. > > Any non-trivial script will probably have some global variables> > Therefore we group our variables and function in a namespace > > What? You're using a detested global variable! :-) > > A "namespace" object doesn't provide any more safety from naming > conflicts than using all globals. e.g. > > var myLib = { > myNamespacedMethod : function(){...} > }; > > is no more conflict safe than: > > var myLib_myNamespacedMethod = function(){...} > > in fact it's even *more* likely to have conflicts since any the entire > myLib object might be replaced rather than just the conflicting method > names. > > It is a good idea to use names that are unlikely to conflict with > others though. > > > > or wrap > > all our code in a anonymous function to prevent global. > > That isn't always suitable. > > > However there are certain situation that we might need to use global. > > For example when our project is growing bigger and we have to split > > our code into modules and save them in different files. > > Therefore I wrote this jQuery plugin call jQuery Secret to solve it. > > jQuery adds a couple of global variables. "$" is probably the most > commonly used variable name by libraries so you are increasing your > chances of conflict more by using it than using some other name. > > > [...] > > Actually it's got nothing to do with jquery > > I just did not want to create another namespace > > and jquery is popular so I wrap the code under jquery's namespace > > The jQuery object (v 1.5.1) has 97 properties and every jQuery plugin > will add properties to various parts of the jQuery object. So you are > about as likely to get naming conflicts by adding to the $ variable as > using global objects. > > To avoid conflict with random properties being added with various > "namespaces", you need a naming strategy that is unlikely to conflict > with any others (such as a 3 or 4 letter prefix). And if that naming > strategy is sufficient to avoid conflicts with those on the jQuery > object (either the standard ones or those added by plugins) it will > likely be sufficient in the global space also. > > Global variables aren't inherently bad, javascript would be quite > limited without them. There are good and bad approaches for their use, > but that is up to the programmer or application designer and poor > naming is poor naming, regardless of whether it is implemented > globally or as object properties. > > > -- > Rob > > -- > To view archived discussions from the original JSMentors Mailman list: > http://www.mail-archive.com/[email protected]/ > > To search via a non-Google archive, visit here: > http://www.mail-archive.com/[email protected]/ > > To unsubscribe from this group, send email to > [email protected] > -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/[email protected]/ To search via a non-Google archive, visit here: http://www.mail-archive.com/[email protected]/ To unsubscribe from this group, send email to [email protected]
