Lambda saysstatic members belong to the class itself; #fields are truly private.
static methods/properties live on the class, not instances (User.create()) — good for factories and constants. Fields prefixed with # (#secret) are genuinely private: inaccessible outside the class, unlike the old underscore convention. This finally gives JS real encapsulation.
Power-ups you unlock
static members live on the class itself
Call as ClassName.method()
#field is truly private (hard private)
Replaces the old _underscore convention
The Mutator attacks — common mistakes
Accessing a static via an instance
Trying to read a #private field from outside
Confusing static (class) with instance members
Boss battleAdd a static factory method and a #private field with a public getter.