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:
Hmm is anyone else encountering problems with
the images on this blog loading? I’m trying to find
out if its a problem on my end or if it’s the blog.
Any feed-back would be greatly appreciated.
Wow, wonderful weblog format! How long have you been blogging for?
you made blogging look easy. The whole glance of
your site is wonderful, as neatly as the content!
Why users still use to read news papers when in this technological globe the whole thing is accessible on web?
Hmm it seems like your website ate my first comment (it was super long) so I guess I’ll
just sum it up what I wrote and say, I’m thoroughly enjoying your blog.
I as well am an aspiring blog writer but I’m still new to the whole thing.
Do you have any tips and hints for beginner blog writers? I’d really appreciate it.
What’s up to all, the contents present at this web site
are truly remarkable for people knowledge, well, keep up the good work
fellows.
Thanks for sharing your info. I really appreciate your efforts and I am waiting
for your next write ups thank you once again.
Appreciating the time and energy you put into your website and detailed information you provide.
It’s great to come across a blog every once in a while that isn’t the same out of
date rehashed information. Fantastic read!
I’ve bookmarked your site and I’m adding your RSS
feeds to my Google account.