On 01.12.2011 11:47, Andrea Giammarchi wrote:
Let's say this is an attempt to bring some new, easy to implement,
method for the native Object.prototype
Specially about forEach, the most used Array.prototype method out
there, it's quite clear JS developers would like to have similar
method to iterate over objects, as key:value pairs rather than
index:value.
Almost every framework/library out there has an "error prone"
each(obj, callback) method, able to automagically recognize if the
passed obj is an array, an arrayLike, or an object.
A classic failing scenario is a function used as object, where the
length property won't mean it's an arrayLike entity.
As summary, I wonder if this proposal could make things more explicit,
easy to remember, and faster, if implemented natively:
https://gist.github.com/1410420
where more details about the "why" and "how", through examples, are
explained in my post:
http://webreflection.blogspot.com/2011/11/array-extras-and-objects.html
The quick version, and all I am asking is an opinion about this, is
obj.forEach(function (value, key, original) {
// all true conditions
original.hasOwnProperty(key);
value === original[key];
original === obj;
this === optionalContext;
}, optionalContext);
Yep, the topic was raised before (by me in particular) of implementing
richer standard libraries for all classes (Array and Object are first on
this list; and especially `forEach' for Object instances). On what Allen
said that time something like "before proposing many methods for
classes, let's understand first where we go w/ classes at all".
Which though doesn't cancel the fact that JS has pure lib for standard
library. Of course monkey patching allows to fix this issues ourselves
(w/o waiting while the committee start to move in this direction), but
of course it's good to have this functionality built-in.
Dmitry.
Thanks for any sort of feedback.
Best Regards
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss