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

David Bruant bruant.d at
Wed Nov 9 03:41:36 PST 2011

Le 09/11/2011 02:26, Andrew Paprocki a écrit :
> On Tue, Nov 8, 2011 at 6:36 PM, Brendan Eich<brendan at>  wrote:
>> Ignoring performance, a lot of stylish JS hackers use Object.keys(o).forEach. How many run into the wrong |this| (arguments/break/continue/return)? Not clear. Something to study.
> I was curious so I did some grok-ing across my code sample and
> Object.keys() is barely used. The usage of the |for in| construct is 2
> orders of magnitude larger than the usage of hasOwnProperty(),
> supporting the thought that no one really does it the "right" way.
> The MDN page for Object.keys does not talk about |this| being wrong in
> certain situations. If you could elaborate on that, it would be
> helpful to know.
The |this| differs between the body of a for-in and the argument 
callback in the .forEach. Nothing to do with Object.keys. .forEach has a 
second optional argument which is the value to be used as |this| so that 
you don't have to do a .bind.


More information about the es-discuss mailing list