以下の内容はhttps://anton0825.hatenablog.com/entry/20121114/1353648966より取得しました。


coffeescriptでプロパティのオーバーライドができない

下記のようなコードで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()

原因はまだ調べてないけどいやな仕様だな。




以上の内容はhttps://anton0825.hatenablog.com/entry/20121114/1353648966より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14