JavaScript Spessore (Early Support)

Retired

This book is no longer available for sale.

JavaScript Spessore

Objects, Metaobjects, & Protocols in ES-5

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.

About the Author

Reg “raganwald” Braithwaite
Reg “raganwald” Braithwaite

When he's not shipping CoffeeScript, JavaScript, Ruby, and Java applications scaling out to millions of users, Reg "Raganwald" Braithwaite creates programming libraries such as Allong.es, Method Combinators, Katy, JQuery Combinators, YouAreDaChef, andand, and others.

He writes primarily about programming. Find out more on his  home page.

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

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $14 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub