@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Backbone.js Helpers 他

Backbone.js の Helpers とか、その他の細かい部分のコードを読んだ。ざっと眺めただけ。

http://documentcloud.github.com/backbone/docs/backbone.html

  • Initial Setup では、すでに Backbone がロードされてたら初期化を二重にやらないようにしていたり、 node.js など CommonJS の仕様に準拠した実行環境のときは exports まわりの仕様にあわせるなど、そんなことをやってる。あと underscore.js をロードしたり。 jQuery or Zepto の $ をとってきたり。
  • var new_backbone = Backbone.noConflict(); みたいにして、 window.Backbone はもともとロードされてたほうの Backbone オブジェクトに保ったまま新しくロードしたほうも使う、とかできる。
  • extend, inherits, ctor あたりはプロトタイプ継承ツリーを作ってる・・・んだと思うけど ctor の存在意義がいまいちよくわからない。constructorとprototype.constructorがわからなくなった - 宇宙野武士は元気にしているかを読んだら余計にわけがわからなくなった。 JavaScript りょく、というかプロトタイプベースのオブジェクト思考の理解が足りない。
  • あとは本当にユーティリティ関数。
  • 全体を (function(){ ... }).call(this); で囲って、無名関数を即時実行するイディオムなのはわかるんだけど、 call を使うのはなんでなんだっけ・・・どこかで (function(){})() との違いとかを比べてるブログ記事を見た覚えがあるけど忘れた。

Backbone.Hogehoge みたいなのにきれいにまとめられていて、あぶれた部分はとても少なかった。全体的に、整理されているし、名前の付け方も Ruby とか Rails っぽくておれには馴染みがあるし、コードもあんまり奇抜なところはなくて (while とかで破壊的に何かするやつは意味不明だったけど) 読みやすいコードだった。 jQuery とか、いまよりもっと勉強不足だった頃に眺めて最初のほうですでにつまづいてしまったけど、これはそれよりも読みやすくて、 JavaScript ライブラリのちょっとしたものを読むとっかかりとしてはいい教材だったと思う。これを読んで自信をつけてから大物に挑むのがいいなと思った。