"... If a user uses new $ this user simply does not truly understand/
know
JavaScript but fortunately will not harm anybody..."
No it wont, unless this user is a team leader and starts blaming
jQuery on everything.
And this happens much more than anyone here (it seems) realises.
But. This is another subject.
PS:
jQuery.fast = false ;
jQuery.error_code = 0xABCD ;
function(selector, context) {
if ( ! jQuery.fast)
if(this instanceof jQuery)
throw new Error( jQuery.error_code, "Can
not new $()");
return new jQuery.fn.init(selector, context);
}
On May 14, 2:59 pm, Andrea Giammarchi <[email protected]>
wrote:
> to do that you need to change the contructor:
>
> function(selector, context) {
> if(this instanceof jQuery)
> throw new Error("Can not new $()");
> return new jQuery.fn.init(selector, context);
>
> }
>
> this means an extra if for each jQuery call, something not that welcome for
> performances reason. At the same time, jQuery itself relies in this
> JavaScript peculiarity, so I would not create "conflicts" between jQuery
> developers and users.
>
> If a user uses new $ this user simply does not truly understand/know
> JavaScript but fortunately will not harm anybody.
>
> On Thu, May 14, 2009 at 10:23 AM, DBJDBJ <[email protected]> wrote:
>
> > Ah, new $, is possible and therefore not barred ... Left in there as a
> > sort of a land-mine for the newcomers ? Or as an esoteric test for GC
> > developers ? Highly useless it seems to me.
>
> > Back to reality and jQuery. $ is defined as:
>
> > function(selector, context) {
> > // The jQuery object is actually just the init constructor
> > 'enhanced'
> > return new jQuery.fn.init(selector, context);
> > }
>
> > Maybe I am just searching for ECMA "harmony", but will $() definition
> > that throws an exception if new-ed , be usefull :
>
> > try {
> > new $ ;
> > } catch ( x )
> > {
> > // x. message == "Can not new $()"
> > }
>
> > Au-contraire : will this hurt anyone ? Is exception throwing
> > porgramming idiom damaging for jQuery?
>
> > --DBJ
>
> > PS: if Python was choosen as a Netscape scripting language, World
> > would be a better place ... If nothing else its name is less
> > ridiculous ... ;o)
>
> > On May 14, 9:04 am, Andrea Giammarchi <[email protected]>
> > wrote:
> > > it's called JavaScript :D
>
> > > jokes a part, every function is a constructor as well so new function is
> > > always valid.
>
> > > If the function returns an object, it does not matter which "new" is
> > because
> > > it will be an instance of returned object one.
>
> > > if it is a primitive it will simply be lost:
>
> > > var a = new function(){return 123;};
> > > // a is an instance of anonymous function
>
> > > this allows us to create Python like initializations:
>
> > > function PythonLike(){
> > > return this instanceof arguments.callee ? this : new
> > arguments.callee;
>
> > > };
>
> > > alert(PythonLike() instanceof PythonLike);
> > > alert(new PythonLike() instanceof PythonLike);
>
> > > true in both cases
>
> > > jQuery returns a new jQuery.prototype.init where init method shares the
> > same
> > > prototype ... better now? :-)
>
> > > On Wed, May 13, 2009 at 11:57 PM, DBJDBJ <[email protected]> wrote:
>
> > > > Why is this allowed :
>
> > > > var jq = new $ ;
>
> > > > Does it matter?
>
> > > > -- DBJ
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---