Define static properties and prototype properties with the class syntax

Kevin Smith zenparsing at gmail.com
Fri Dec 12 20:53:43 PST 2014


>
> 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/20141212/04fefd3a/attachment.html>


More information about the es-discuss mailing list