私は、CoffeeScript クラスを次のように拡張できることを知っています。
Dog::bark = ->
console.log("bark")
これを動的に実行できるようにしたい。たとえば、次のようなことをしたい:
sounds = [ "bark", "woof", "grrr", "ruff" ]
for sound in sounds
Dog::[sound] = ->
console.log(sound)
同等の JavaScript は次のようになります。
var sounds = [ "bark", "woof", "grrr", "ruff" ];
for (var i = 0; i < sounds.length; i++)
{
var sound = sounds[i];
Dog.prototype[sound] = function() {
console.log(sound);
};
}
CoffeeScriptでこれを行うにはどうすればよいですか?