2
私はcoffeescriptで継承がどのように機能するかを調べようとしています。ここに私のコードの簡単な例です:私はライン上に配置する必要がありますどのようなCoffeeScriptクラスの継承
class Parent
constructor: (attrs) ->
for own name,value of attrs
this[name] = value
Parent.from_json_array = (json, callback) ->
for item in JSON.parse(json)
obj = new ChildA item # [1]
callback obj
class ChildA extends Parent
class ChildB extends Parent
ChildA.from_json_array("[{foo: 1}, {foo: 2}]") (obj) ->
console.log obj.foo
は、ここでは、正しい子クラスを使用するように[1]
をマーク?これは動作しますが、プロトタイプがChildA
のオブジェクトのみが作成されます。私のような何か試してみた:
Parent.from_json_array = (json, callback) ->
klass = this.prototype
for item in JSON.parse(json)
obj = klass.constructor item # [1]
callback obj
を...しかし、これは私のコールバック関数(TypeError例外にすると不定obj
を残し:未定義のプロパティ「foo」を読み込めません」
をいただきましたCoffeeScriptの中に魔法の呪文?クラスが可変であるクラスの新しいオブジェクトを作成することができ