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

Reply via email to