... with the return object in the forEach ... btw, if performances are a
problem, leave each as is but imho if you need a for in loop I do not get
this limitation over object with proper or inherited length

On Thu, Mar 5, 2009 at 3:51 PM, Andrea Giammarchi <
[email protected]> wrote:

> I don't know in which case an each over a definition (prototype with a
> length) could be useful ... I think a forEach as for in could be explicit
> and less ambiguous for these weird case (I mean, you have the same problem
> with window object, don't you?)
>
> A=0;$.each(window,function(){ A++; });A
>
> ... A is 0
>
> what about this?
>
>
>     forEach:function( object, callback, args ){
>         if ( args )
>             for ( var name in object )
>                 if ( callback.apply( object[ name ], args ) === false )
>                     break;
>         else
>             for ( var name in object )
>                 if ( callback.call( object[ name ], name, object[ name ] )
> === false )
>                     break;
>     },
>
>     // args is for internal usage only
>     each: function( object, callback, args ) {
>         var i = 0, length = object.length;
>         if(length === undefined)
>             jQuery.fn.forEach( object, callback, args );
>         else if(args)
>             for ( ; i < length; )
>                     if ( callback.apply( object[ i++ ], args ) === false )
>                         break;
>         else
>             for ( var value = object[0];
>                     i < length && callback.call( value, i, value ) !==
> false; value = object[++i] );
>         return object;
>     },
>
>
>
> On Thu, Mar 5, 2009 at 3:34 PM, Ariel Flesler <[email protected]> wrote:
>
>>
>> I dunno how is Firebug sniffing arrays, maybe like:
>>
>> if( this._proto_.length !== undefined )...
>>
>> In that case, this change would matter, anyway....
>>
>>
>> As for the other thing, I suppose it happened  because I was using
>> $.each to iterate $.fn.
>> Go to jquery.com, then try this on Firebug's console:
>>
>> A=0;$.each($.fn,function(){ A++; });A
>>
>> You'll get 132.
>>
>> Now execute $.fn.length = 0; and try again.
>>
>> On Thu, Mar 5, 2009 at 1:13 PM, Andrea Giammarchi
>> <[email protected]> wrote:
>> > if length is always assigned, you do not need it in the prototype, so
>> why
>> > you asked if that was the problem? :-)
>> >
>> > I did not get the proto un-iterable but generally I prefer properties as
>> > methods in the prototype rather than assigned runtime, so you can spot
>> > everything simply logging the constructort.prototype or reading it, no?
>> > Prototype as definition, in few words
>> >
>> >
>> >
>> > On Thu, Mar 5, 2009 at 2:45 PM, Ariel Flesler <[email protected]>
>> wrote:
>> >>
>> >> Each instance gets a length within $.fn.init, no exception. So that
>> >> prop was redundant.
>> >> It might also made the proto un-iterable back then when I needed to do
>> >> that.
>> >>
>> >> So, why re-add it ?
>> >>
>> >> On Thu, Mar 5, 2009 at 12:12 PM, Andrea Giammarchi
>> >> <[email protected]> wrote:
>> >> > Since every call to jQuery returns an ArrayLike instance I think you
>> >> > should
>> >> > put back the length:0 into the prototype (could be also useful to
>> >> > understand
>> >> > different instances via constructors prototype).
>> >> >
>> >> >
>> >> > On Thu, Mar 5, 2009 at 1:30 PM, Ariel Flesler <[email protected]>
>> >> > wrote:
>> >> >>
>> >> >> Maybe because we removed:
>> >> >>
>> >> >>  length:0,
>> >> >>
>> >> >> from jQuery's prototype ?
>> >> >>
>> >> >> --
>> >> >> Ariel Flesler
>> >> >> http://flesler.blogspot.com
>> >> >>
>> >> >> On Mar 5, 12:40 am, John Resig <[email protected]> wrote:
>> >> >> > It's supposed to be - and this was a change in Firebug, not in
>> jQuery
>> >> >> > - it was actually a regression in Firebug that this no longer
>> worked.
>> >> >> >
>> >> >> > --John
>> >> >> >
>> >> >> > On Wed, Mar 4, 2009 at 7:25 PM, Ricardo Tomasi
>> >> >> > <[email protected]>
>> >> >> > wrote:
>> >> >> >
>> >> >> > > Why is it that Firebug reports jQuery objects as simple arrays
>> in
>> >> >> > > 1.3.2? 1.2.6 always returned me the actual jQuery object. Is
>> this a
>> >> >> > > bug (i'm on Firefox 3.0.7) or is it supposed to be this way? How
>> >> >> > > can I
>> >> >> > > inspect the actual object?
>> >> >> >
>> >> >> > > - ricardo
>> >> >> >
>> >> >> >
>> >> >>
>> >> >
>> >> >
>> >> > >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Ariel Flesler
>> >> http://flesler.blogspot.com
>> >>
>> >>
>> >
>> >
>> > >
>> >
>>
>>
>>
>> --
>> Ariel Flesler
>> http://flesler.blogspot.com
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
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