Rethink JS Classes: Embrace Closures for Lightweight State & Typing
Hey devs, Let’s talk about classes. Or rather — let’s talk about not using them probably? JavaScript gives us powerful tools like closures and lexical scope, yet we often fall back on class-based patterns borrowed from Java or C#. While classes have their place — especially when true inheritance or complex hierarchies are needed — they come with baggage: extra syntax, confusing this, and often heavier abstractions than necessary. Instead, I want to show you a more lightweight, idiomatic JS/TS approach: builder functions powered by closures.

Hey devs,
Let’s talk about classes. Or rather — let’s talk about not using them probably?
JavaScript gives us powerful tools like closures and lexical scope, yet we often fall back on class-based patterns borrowed from Java or C#. While classes have their place — especially when true inheritance or complex hierarchies are needed — they come with baggage: extra syntax, confusing this
, and often heavier abstractions than necessary.
Instead, I want to show you a more lightweight, idiomatic JS/TS approach: builder functions powered by closures.