Limited classes can also be defined via JavaScript 1.5-style functions , but doing so is discouraged for new code. Like other definitions and declarations , a class definition or declaration may be preceded by one or more attributes , which affect the class's scope, namespace, and semantics.
Every class is also a value and has type Type .
Class Declarations A class definition not followed by a Block is called a class declaration. A class declaration indicates that the class will be defined later in the same scope. When a class declaration is executed, it defines its QualifiedIdentifier as a new class. That QualifiedIdentifier may be used in subsequent type expressions, but instances of the class may not be created until the class's definition is fully executed. Until then, the only things known about the new class are that null is a member of it and that undefined coerces to null when assigned to a variable of the new class.