A blog series

JavaScript Part 2: Objects, Async and Modules

The second half of JavaScript: objects and prototypes, this and classes, promises and async/await, modules, iterators and generators, the DOM and events, errors and Proxy, and memory. Each idea is traced with small examples that were run.

Started 
2026
Lessons 
8
Reading 
~4 h

Contents

Every lesson has the same steps: what it is, how it works, a real example, common mistakes, then interview questions with answers you can say out loud.

  1. Lesson 00Objects and the Prototype ChainProperty descriptors, how lookup walks the prototype chain, new traced step by step, shadowing, freeze and seal.25 min
  2. Lesson 01this, call/apply/bind and ClassesThe four rules for this, arrow functions, call, apply and bind, and classes shown as sugar over prototypes.25 min
  3. Lesson 02Promises and async/await From the Ground UpPromise states, microtask order, a promise built by hand, async/await, the combinators and AbortController.30 min
  4. Lesson 03Modules: ES Modules, CommonJS, Bundlers and Tree ShakingLive bindings versus copies, Node's module rules, circular imports, and a real bundle built with esbuild.30 min
  5. Lesson 04Iterators, Generators and SymbolsThe iteration protocol, writing iterators and generators by hand, lazy sequences, async iterators and symbols.28 min
  6. Lesson 05The DOM and EventsThe DOM tree, changing nodes, capturing and bubbling traced, event delegation, custom events and forms, run with jsdom.28 min
  7. Lesson 06Errors, Proxy, Reflect, Copying and ImmutabilityThrowing and catching, Proxy traps with Reflect, shallow versus deep copies, structuredClone and immutable updates.30 min
  8. Lesson 07Memory, Garbage Collection and WeakMap/WeakRefReachability, five usual leaks measured, WeakMap and WeakRef, typed arrays and how to find a leak with heap snapshots.22 min

Glossary

20 terms used in this series. Inside any lesson, hover or tap a dotted term to see its meaning without leaving the page. Browse all terms →