I’ve never seen it written quite this way. #1 is indeed the best argument 
against object literal (I thought we were calling them object initializers?) 
syntax for class declarations.

I wonder, though, if comma-separation can’t be learned, especially if trailing 
commas can be added (which is legal in ES5):

let obj = {
    foo: 123,
    method() {
    }
    bar: "abc",
}

Manageable and the exact analog of semicolon separation.

On Mar 21, 2012, at 9:04 , Brendan Eich wrote:

> Erik Arvidsson wrote:
>> This is why, if we ever agree on class syntax we might want to consider being
>> opinionated and prevent such usage.
> 
> I'll see and raise: class syntax should use a restrictive body plan that's 
> not an object literal specifically so it can't have data properties where it 
> has prototype methods and accessors. You might argue for an object literal 
> with method definition shorthand and get/set accessors, and just ban data 
> properties (p:42, e.g.) but:
> 
> 1. People will expect them and we can't add them in the future without adding 
> the footgun or diverging from object literals in how data properties bind 
> instance properties, while methods and accessors bind prototype properties.
> 
> 2. The comma separation is a pain, and unnecessary with bespoke class syntax, 
> so usability says we should avoid it.
> 
> /be
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
> 

-- 
Dr. Axel Rauschmayer
[email protected]

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to