下記のようなコードでfooプロパティをオーバーライドした場合、
class Super foo: => console.log "super" class Sub extends Super foo: ["test"] s = new Sub console.log s.foo.toString()
ログに出力される結果は以下のようになる。
function (){ return fn.apply(me, arguments); }
なんだこりゃ。。
もちろんコードの意図としては、fooは["test"]を返して欲しい。
これはプロパティ定義で=>を使っている場合に起こるようで、
以下のように書き換えると意図したとおりの動きになる。
class Super foo: -> console.log "super" class Sub extends Super foo: ["test"] s = new Sub console.log s.foo.toString()
原因はまだ調べてないけどいやな仕様だな。