Skip to content Skip to sidebar Skip to footer

Variable Not Defined Inside ES6 Class Without 'let' Or 'var'

When I use the ES6 class syntax, a variable inside a method declared without 'let' or 'var' is undefined. However, when using the regular object syntax, it is defined. To illustrat

Solution 1:

When I use the ES6 class syntax, a variable inside a method declared without 'let' or 'var' is undefined.

Actually, it's undeclared. That's why you get an exception.

However, when using the regular object syntax, it is defined.

That's because ES6 class methods automatically run in strict mode, your regular object syntax does only run in sloppy mode. (It should not! "use strict" mode everywhere!)
Assigning to an undeclared identifier will implicitly create a global variable, a thing which you'll definitely want to avoid.

Not using the class syntax solves this problem

No, the problem is solved by properly declaring the variable.


Post a Comment for "Variable Not Defined Inside ES6 Class Without 'let' Or 'var'"