for own(...) loop (spin-off from Re:, hasOwnProperty(), and inheritance)

John J Barton johnjbarton at
Tue Nov 8 13:17:56 PST 2011

On Tue, Nov 8, 2011 at 12:49 PM, Brendan Eich <brendan at> wrote:
> The recommended practice when writing for-in loops in JS today is to write:
>   for (i in o) {
>     if (o.hasOwnProperty(i)) {
>       body
>     }
>   }
> Although many JS developers do not follow the recommendation (out of
> ignorance or intentionally, doesn't matter).
> Should provide sugar for the recommended pattern? To make it compose
> with declarations and destructuring in the for head, it should use a
> contextual keyword immediately after 'for':
>   for own (i in o) {
>     body
>   }
> This is a small thing but it might pay off in the long run.

Just as a point of comparison, I use this form:
   Object.keys(o).forEach( function(key) {

I would use |for own| if it existed, solely to avoid thinking about
overhead and because single stepping would work better.


More information about the es-discuss mailing list