【发布时间】:2011-01-12 16:16:36
【问题描述】:
给定以下咖啡脚本代码:
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 在匿名函数中包装了很多东西来控制范围泄漏,但是这里可能会泄漏什么?
【问题讨论】:
-
主观且有争议的近距离投票?真的吗?这是一个有效的问题,询问为什么有必要将函数包装在匿名函数中。