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:
Great blog right here! Also your website so
much up very fast! What web host are you using? Can I am getting your associate hyperlink in your host?
I desire my site loaded up as quickly as yours lol
My homepage commercial cladding
This article covers everything about board ups—definitely sharing it with friends who might need it! board up service
Good post. I learn something totally new and challenging on sites I
stumbleupon everyday. It’s always exciting to read through articles from other writers and
practice a little something from their websites.
Thanks for the useful post. More like this at advertising agency .