次の 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 が無名関数に多くのものをラップしていることは知っていますが、ここで何がリークする可能性があるのでしょうか?