考虑下面的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