O_o
wtf, I thought that valueOf was ignored for those kind of bools.
Taking another look, !! doesn't even run valueOf as I thought.
My comment was on the > operator, and your comment about what jquery
shows up as in firebug if used.
jQuery.fn.valueOf = function(hint){
if ( hint === "number" )
return this.length;
return this.get(); // on a second note, it would be nice to use a
toArray() instead.
};
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]
John Resig wrote:
> Nope.
>
> var obj = { valueOf: function(){ return 0; } };
> !!obj
> >> true
>
> obj.valueOf().constructor
> >> Number()
>
> It looks like it's returning the number as Number(0) rather than in
> its primitive form.
>
> --John
>
>
> On Thu, Jul 23, 2009 at 5:49 PM, Daniel Friesen
> <[email protected] <mailto:[email protected]>> wrote:
>
>
> John Resig wrote:
> > I'm hesitant to add that (I've definitely thought about it, in the
> > past) because .valueOf() doesn't cover all comparison cases.
> >
> > obj > obj2 works (as you noted)
> > but if ( obj ) {} doesn't (it always returns true)
> >
> > Additionally, in Firebug, the result shows up as a number rather
> than
> > something more useful (like a list of elements).
> What about type hinting?
>
> ~Daniel Friesen (Dantman, Nadir-Seen-Fire)
> [http://daniel.friesen.name]
>
> > --John
> >
> >
> > On Thu, Jul 23, 2009 at 2:06 PM, James Padolsey
> > <[email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>>
> > wrote:
> >
> >
> > Just a thought; this would be quite useful IMO:
> >
> > var paras = $('p'), uls = $('ul');
> > if (paras > uls) {
> > // ...
> > }
> >
> > I know it's not quite as readable (or as semantic) as:
> >
> > if (paras.length > uls.length) {
> > // ...
> > }
> >
> > but still, it's one of those things that may as well be
> added, just
> > for the few situations where it may be useful.
> >
> > jQuery.fn.valueOf = function(){return this.length;};
> >
> > Unless it's got some other valid use (with jQuery)...?
> >
> >
> >
> > >
>
>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---