"!! obj" and "if(obj)" don't call .valueOf() at all.
_____
From: John Resig
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]>
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]>>
> 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
-~----------~----~----~----~------~----~------~--~---