[[Name]] record.
Technical Characteristics
Lexical Scoping of the Identifier The identifier assigned to the class (InternalIdentifier) is only bound within the class body. It is not added to the enclosing lexical environment. Attempting to reference the internal identifier outside of the class body will result in a ReferenceError.
The name Property
When a class expression is named, the JavaScript engine assigns the internal identifier to the class’s name property. The outer variable binding (VariableBinding) does not infer its name onto the class if the internal identifier is present.
Immutability
Classes are implicitly executed in strict mode. The internal binding created by the named class expression is immutable. Any attempt to reassign the internal identifier from within the class body will throw a TypeError.
Evaluation and Hoisting
Named class expressions are evaluated at runtime when the execution context reaches the expression. Unlike class declarations, they are not hoisted. The outer variable binding follows the hoisting rules of its declaration keyword (const, let, or var), but the class itself remains uninitialized until evaluation.
Behavior Visualization
Tired of Poor JavaScript Skills? Fix That With Deep Grasping!Learn More





