You can accomplish this by calling `Object.seal(this)` in the constructor.
```js
constructor() {
this.x = 1;
Object.seal(this);
}
```
On Fri, Mar 18, 2016 at 8:36 AM, Brian Barnes <[email protected]> wrote:
> I know properties on classes are getting a look over for the next
> iteration (last I checked) and I understand javascript is obviously a
> different language then other oo languages with a different foundation, but
> I bring this up for it's usage in producing stricter code that reduces
> errors and is easier to analyze. A vote for this if anybody considered it!
>
> class Test
> {
>
> constructor()
> {
> this.x=1;
> }
>
> func1()
> {
> this.y=2;
> }
>
> func2()
> {
> console.log(this.x+','+this.y);
> }
> }
>
> var test1=new Test();
> test1.func1();
> test2.func2(); // outputs 1,2
>
> var test2=new Test();
> test2.func(); // outputs 1,undefined
>
> I know classes contents are meant to be in strict mode, and I thinking
> that only allowing properties to be created in the constructor (or
> eventually static properties on the class itself) would make a system less
> prone to the conditions like you see above. Basically, func1() would
> produce a error when run.
>
> I can see why this type of initialization of properties could be desired,
> though, especially as it reflect the way it would have worked if you used a
> function instead of a class.
>
> [>] Brian
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss