JavaScript Spessore cover page
JavaScript Spessore

JavaScript Spessore

Objects, Metaobjects, & Protocols in ES-5


JavaScript Spessore will show you how to build JavaScript programs that scale in code, in time, and across a team, using the one technique that has passed the test of time: Objects and metaobjects that have a single responsibility, are decoupled from each other, and can be composed freely.
JavaScript Spessore Edit

Updated

  • $29.00

    Minimum

  • $39.00

    Suggested

About the Book

Programming languages are (loosely) defined by their basic activity. In FORTRAN, you program with numbers. In C, you program with pointers. In ML, you program with types. And in JavaScript, you program with functions.

Functions are very interesting building blocks for programs, because they compose: It’s easy to build a programming style based on making many small things that can be combined and recombined to make bigger things.

This is the basis of the vaunted “Unix Philosophy:” Write small utilities and scripts that compose neatly. This is also the JavaScript philosophy: Make small things that can be combined and recombined to make bigger things.

Programming with objects can be done in this style, and JavaScript makes it particularly easy to combine and recombine small parts. Classes can be built from traits instead of from superclasses. Objects can delegate and forward behaviour to helpers and meta-objects. Adaptors can be written to change an object’s interface without needing to create another class in a hierarchy.

JavaScript Spessore is a book that describes this approach to working with objects and metaobjects in JavaScript. It’s exactly the same philosophy as you find in JavaScript Allongé, only it talks to programming with objects instead of programming with functions.

JavaScript Spessore will show you how to build JavaScript programs that scale in code, in time, and across a team, using the one technique that has passed the test of time: Objects and metaobjects that have a single responsibility, are decoupled from each other, and can be composed freely.

Go ahead, read it for yourself. It’s free.

Read More

Table of Contents

  • Prefaces
    • Taking a page out of LiSP
    • JavaScript Allongé
  • The Big Idea
    • Is JavaScript Functional or Object-Oriented?
    • JavaScript Algebras
    • Composeability
  • JavaScript’s Objects
    • Data Structures
    • Plain Old JavaScript Objects
    • Encapsulating State with Closures
    • Composition and Extension
    • This and That
    • What Context Applies When We Call a Function?
    • Extending Objects
  • Object Recipes
    • Records and Value Objects
    • Accessors
    • Hiding Object Properties
    • Proxies
  • Instances and Prototypes
    • Prototypes are Simple, it’s the Explanations that are Hard To Understand
    • Binding Functions to Contexts
    • Object Methods
    • Extending Objects with Delegation
  • Methods
    • What is a Method?
    • The Letter and the Spirit of the Law
    • Composite Methods
    • Method Objects
    • Predicate Dispatch
  • Metaobjects
    • Why Metaobjects?
    • Mixins, Forwarding, and Delegation
    • Later Binding
    • Conflict Resolution Policies
    • Delegation via Prototypes
    • Singleton Prototypes
    • Shared Prototypes
    • Metaobjects and “self”
  • Interlude: Greenspun’s Tenth Rule
  • Encapsulation and Composition
    • The Encapsulation Problem
    • Proxies
    • Encapsulation for Metaobjects
    • encapsulate(...)
    • Encapsulation and Self
    • Privacy
    • Closing Encapsulated Objects
    • Decoupling with Partial Proxies
    • Composing Metaobjects
    • Transforming and Decorating Metaobjects
    • Playing Well with Classes
  • Inheritance, Ontologies, and Semantic Types
    • Class Hierarchies
    • Getting the Semantics Right
    • Structural vs. Semantic Typing
    • Interlude: “is-a” and “was-a”
    • The Expression Problem
    • Multiple Dispatch
  • Metaobject Protocols
    • Genesis
    • The Class Class
    • Class Mixins
    • Well, Actually…
  • Source Code Examples
    • Object Recipes
    • Methods
    • Metaobjects
    • Greenspun’s Tenth Rule
    • Encapsulation and Composition
    • Inheritance
    • Utility Functions
  • Copyright Notice
  • About The Author

Read More

About the Author

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks. We process the refunds manually, so they may take a few days to show up.
See full terms