As JavaScript reaches more and more corners of the programming world, developers have crafted approaches that fit the language with a variety of circumstances. JavaScript’s combination of functional and prototype-based models makes it a rich environment for exploration. This collection explores how to choose abstractions, some concrete examples, and JavaScript features that make it easier.