coffeescriptで昔ハマった事

こういう事をすると

class Hoge.Image
  constructor: ->
    this.preload()
 
  preload: ->
    image = new Image()
    #...

こうなって無限再帰になります。頭悪いです。

Hoge.Image = (function() {

  function Image() {
    this.preload();
  }

  Image.prototype.preload = function() {
    var image;
    return image = new Image();
  };

  return Image;

})();

・document.createElementを使う
・オブジェクトのプロパティでも、組み込みコンストラクタと同じクラス名は絶対に付けない

class Hoge.ImageLoader
  constructor: ->
    this.preload()
 
  preload: ->
    image = document.createElement('img')
    #...