名前空間の初期化をファイル読み込み順番を気にせずにやりたい
ただし継承関係は気にする必要があるので、気をつけることには変わりない。
実装
root = window ? global ? this
root._module_ = (ns, f) =>
context = root
hist = []
for name in ns.split('.')
unless context[name]?
context[name] = {}
context = context[name]
hist.push context
f.apply context, hist
使い方
# base.coffee
_module_ "App.View", ->
class @Base
# myview.coffee
_module_ "App.View", (App, View) ->
class @MyView extends View.Base
# main.coffee
myview = new App.View.MyView