考慮下面的CoffeeScript代碼:爲什麼coffeescript會生成這樣的類?
class Animal
constructor: (@name) ->
speak: (things) -> "My name is #{@name} and I like #{things}"
這是產生:
var Animal = (function() {
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function(things) {
return "My name is " + this.name + " and I like " + things;
};
return Animal;
})();
但是,爲什麼沒有產生這種更地道的代碼?
var Animal = function Animal(name) {
this.name = name;
};
Animal.prototype.speak = function(things) {
return "My name is " + this.name + " and I like " + things;
};
我知道coffeescript在匿名函數中封裝了很多東西來控制範圍泄漏,但是這裏可能會泄漏什麼?
一個主觀的和議論性的近距離投票?真?這是一個有效的問題,詢問爲什麼有必要將函數包裝在匿名函數中。 – ryeguy 2011-01-12 16:19:57