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

Wed Nov 9 07:08:43 PST 2011

for own (i in o) {   //body

I'd rather see something like

for (i inside o) {

And the reason for this is you could then use it in conditions as you use in:

if ( 'prop' in obj ) {

if ( 'prop' inside obj ) {

You would have
'prop' inside obj <=> obj, 'prop' )

On Wed, Nov 9, 2011 at 12:41 PM, David Bruant <bruant.d at> wrote:
> 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.
> David
> _______________________________________________
> es-discuss mailing list
> es-discuss at

More information about the es-discuss mailing list