Calling methods statically on classes
Most of the time we want the methods we attach to a class to be available on every instance of that class. In JavaScript, this means attaching them to the class prototype. Occasionally, though, we wish to attach a method to the class itself, so that it is always available from a single reference without instantiating any objects. These are commonly known as static methods
or class methods. These types of method declarations are sometimes used to group many utility functions under a single namespace (think of the Math
class in the standard JavaScript library). Let's build one of those.
class Bicycle @frameSizeByHeight = (riderHeight) -> Math.floor riderHeight * 0.82 for h in [60, 68, 72] console.log "A #{h}\" rider needs a size " + "#{Bicycle.frameSizeByHeight h} bike."
We have a Bicycle
class. One common calculation related to bikes is determining what size bike someone needs given their height. It doesn't make sense for us to construct...