CoffeeScript lazy singleton class instance function

Explanation

“@instance:” allows us to attach an object/value to the Foo class instead of Foo’s prototype. Recall that “@” in CoffeeScript refers to JavaScript’s “this”.

After “@instance:” there is a function that is immediately executed. This function returns a function, closed around a variable called instance. Both these functions have their context (their “this”) bound to the Foo object using CoffeeScript’s wonderful “define and bind” operator “=>” as opposed to the normal function definition operator “->”.

When called, the function that “@instance” ends up referring to simply checks to see if the “instance” variable is empty and if so, assigns a new instance of Foo to it. Newing up a Foo is done using the “@” symbol since the function’s “this” refers to the Foo object. It then returns the instance.

Output

The CoffeeScript above compiles down to this:

23,235 thoughts on “CoffeeScript lazy singleton class instance function

  1. Howdy are using WordPress for your site platform?
    I’m new to the blog world but I’m trying to get started and create my own. Do you
    need any coding knowledge to make your own blog? Any help would be really
    appreciated!

  2. My relatives all the time say that I am wasting my time here at net, but I know I am getting knowledge
    daily by reading thes fastidious posts.

  3. Nice blog right here! Additionally your website rather a lot up very fast!
    What host are you using? Can I get your affiliate link for your host?

    I want my site loaded up as fast as yours lol

  4. Hi everybody, here every person is sharing these kinds of knowledge, therefore it’s nice to read this web site, and I
    used to visit this blog everyday.

  5. Your style is very unique in comparison to other people I have
    read stuff from. I appreciate you for posting when you
    have the opportunity, Guess I’ll just book mark this web site.

  6. When someone writes an post he/she maintains the idea of a user in his/her mind that how a user can know it.
    So that’s why this piece of writing is perfect.

    Thanks!