2016-05-13 3 views
0

私は自分のes6 mixinを作った(それはうん!)しかし、私が完全に私が(たとえばhere以下)、ここで作成しているかを理解していないようです:理解es6 mixinスーパークラスのコンベンション

export var EventEmitterMixin = (daSuperClass) => class extends daSuperClass { 
} 

どのように私はこのコード行を読んでいますか? daSuperClassはちょうど私が好きなものに変更することができるので、ちょうどひどいですね?なぜそこに2回いるのですか?

+0

「ES6ミックスイン」のようなものはありません。それはちょうど完成した言葉です。あなたは何をしようとしているのですか? – naomik

+0

@naomikはOPヘルプのリンクを作成していますか? – jedierikb

+0

ミックスインはJavaScriptで混乱していることを認めていますが、それは理解できますが、ミックスインアプリケーションの男の子はどのように単一継承されているのかはわかりません。 JavaScriptはRubyやネイティブmixin APIを使用した他の言語ではありません。それは古典的な継承をも持っていない、それは原型継承を持っています。言葉を何かにしようとするものは、間違ったものです。この記事では、存在しない問題の解決策を提示しています。 – naomik

答えて

1

関数を定義するときは、パラメータに名前を付けて参照できるようにする必要があります。それは脂肪矢印構文せずに​​書き換えられた場合に何が起こっているかを確認するために容易になることがあります。

export var EventEmitterMixin = function(daSuperClass) { 
    return class extends daSuperClass { 
    [...] 
    } 
} 

だからあなたのミックスインが取る引数はあなたが作成している新しいクラスのプロトタイプを形成しようとしています。あなたは、あなたが提供する基本クラスから「拡張」することで、余分な機能を混在させます。

関連する問題