Define static properties and prototype properties with the class syntax

Glen Huang curvedmark at gmail.com
Fri Dec 12 21:15:03 PST 2014


I agree data properties on the instance prototype is a bad idea. But static properties are really useful. Could we at lease allow them:

class Foo {
  static bar = 43;
}

> On Dec 13, 2014, at 12:53 PM, Kevin Smith <zenparsing at gmail.com> wrote:
> 
> function Foo() {}
> Foo.bar = 1;
> Foo.prototype.baz = 2;
> 
> Is it possible to allow this in es6 with the class syntax? Or it belongs to es7? Or it’s simply a terrible idea?
> 
> Data properties on the instance prototype are generally considered to be a footgun.  If you want to expose a data-like property on the constructor (or the instance prototype), you can use accessors:
> 
>     let _bar = 1;
>     class Foo {
>         static get bar() { return _bar; }
>         static set bar(value) { _bar = value; }
>     }
>     Foo.bar = 43;
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20141213/6b32497d/attachment-0001.html>


More information about the es-discuss mailing list