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:
Excellent way of telling, and fastidious post to take information regarding my presentation subject matter, which i am
going to convey in university.
Hi there! This is my first comment here so I just wanted to give
a quick shout out and say I genuinely enjoy reading your blog
posts. Can you suggest any other blogs/websites/forums that deal with the
same subjects? Many thanks!
Every weekend i used to go to see this web site, as i want enjoyment, since this this web page conations genuinely nice
funny material too.
Hello it’s me, I am also visiting this website regularly, this web page is genuinely
nice and the viewers are really sharing pleasant thoughts.
Somebody essentially help to make significantly posts I would
state. This is the first time I frequented your web page and thus far?
I amazed with the analysis you made to make this actual put up extraordinary.
Fantastic task!
Hey There. I found your blog the usage of msn. This is a
very neatly written article. I’ll be sure to bookmark it and return to read extra of your useful info.
Thanks for the post. I’ll certainly return.
Remarkable issues here. I am very happy to look your post.
Thanks so much and I am having a look ahead to touch you.
Will you kindly drop me a mail?
This is a really good tip especially to those fresh to the blogosphere.
Simple but very precise info… Appreciate your sharing this one.
A must read article!
I don’t even know how I ended up here, but I
thought this post was great. I don’t know who you are but certainly you’re going to a famous blogger if you are not already ;
) Cheers!
For the reason that the admin of this web page is working,
no uncertainty very quickly it will be well-known, due to
its quality contents.
you are in reality a excellent webmaster. The web site loading
velocity is amazing. It seems that you are doing any distinctive trick.
Also, The contents are masterpiece. you have performed a
great process on this topic!