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. Kush Casino — это динамично развивающаяся игровая платформа. Здесь встречаются удобство, стиль и крупные выигрыши. Если вы ищете новый уровень гемблинга, то Kush casino скачать именно то, что вам нужно.

    Платформа предлагает более 3000 игр от ведущих мировых провайдеров. Для новых игроков действует приветственный бонус до 200% + фриспины.

    Скорость транзакций на высшем уровне

    Полная поддержка мобильных устройств

    Постоянные акции и розыгрыши

    Kush Casino — портал, который выводит азарт на новый уровень.

  2. Currently it appears like Expression Engine is the best blogging platform out there right now.
    (from what I’ve read) Is that what you are using on your blog?

  3. Nice post. I was checking constantly this blog and I am
    impressed! Very useful info specifically the last part :) I care for such info much.

    I was looking for this particular information for a long time.
    Thank you and best of luck.

  4. Wow, this paragraph is good, my younger sister is analyzing these
    things, therefore I am going to let know her.

  5. First off I want to say awesome blog! I had a quick question which I’d like to ask if you do
    not mind. I was curious to know how you center yourself and clear your mind before writing.
    I have had trouble clearing my mind in getting my ideas out.

    I truly do take pleasure in writing but it just seems like the first 10 to 15 minutes are generally lost
    just trying to figure out how to begin. Any recommendations
    or tips? Kudos!