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:
An interesting discussion is worth comment. I do believe that you ought to publish more on this issue,
it may not be a taboo subject but usually folks don’t discuss these issues.
To the next! Many thanks!!
Paragraph writing is also a excitement, if you know afterward you can write or else it is complex to write.
Howdy! This is my first comment here so I just wanted to give
a quick shout out and tell you I really enjoy reading your posts.
Can you recommend any other blogs/websites/forums that deal with
the same topics? Thanks a lot!
歡迎來到 E2BET 香港 – 您的勝利,全數支付。享受豐厚獎金,玩刺激遊戲,體驗公平舒適的線上博彩。立即註冊!
I got this web page from my friend who told me concerning this web
site and now this time I am visiting this website and reading very informative posts
at this time.
Hey there! Do you use Twitter? I’d like to follow you if that would be ok.
I’m definitely enjoying your blog and look forward to new
posts.