jQueryとCoffeeScript

昔書いたJavaScriptのみのソースをjQueryCoffeeScriptを使ったソースに書き換えてみた

jQueryCoffeeScript
<html>
<head>
<title>test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"> </script>
<script type="text/coffeescript">

$ -> 
  $('body').html('').css('font-size', '50px')

  class System
    constructor : ->
      @text       = 'Hello'.slice('')
      @i          = 0
      @clear_id   = 0

    typing : =>
      $('body').append( @text[@i] )
      @i++
      if( @i > @text.length )
        clearInterval( @clear_id )

    start : =>
      @clear_id = setInterval(@typing, 500)

  system = new System
  system.start()


</script>
<script type="text/javascript" src="http://github.com/jashkenas/coffee-script/raw/master/extras/coffee-script.js"> </script>
</head>
<body>
</body>
</html>

思ったこと

  • JSのときと同様、 = と : の使う場所を間違えて戸惑った
  • インデントがちょっとずれるだけでエラーになる
  • 昔のソースはハッシュで作ってるがクラスに変えた(ハッシュだと@とか使えるかわからなかったから)
  • 'こんにちは'.slice('')にしてたが、うまく分割してくれなかった....
  • constructorなんていらない直書きだ!みたいな感じでインスタンス変数宣言書いていったら当然エラーになった
  • クラスの中で自分自身のメソッドを呼びたいときは頭に@を付けて@hoge() みたいにすると呼べる
  • 内部DSLとかじゃないので、functionとかコメントの//とかがエラーになるのがつらかった