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:
I enjoyed this article. Check out vehicle wraps for more.
Thanks for sharing your info. I really appreciate your efforts and I am waiting
for your further write ups thanks once again.
Fantastic site. Plenty of useful info here.
I am sending it to some pals ans additionally sharing in delicious.
And naturally, thank you in your sweat!
This was quite enlightening. Check out incapacidad laboral Sevilla for more.
The team at Summit Services has proven time and again that they’re the best electricians nearby—incredible service every time! best electrician bluffton sc
This was quite enlightening. Check out colchones muelles ensacados Albacete for more.
I needed emergency tarping and found responsive Hamilton roofers through roof repair hamilton —lifesavers during a rainy week.