;) I still see an if statement there, heh.

I prefer the conditional comments + build system approach.

~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]

DBJDBJ wrote:
> "... 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to