2016-07-18 10 views
12

ES6では、可変引数を経由する親コンストラクタを呼び出す方法がありますか?foo.apply(this, arguments)?私は答えを探しましたが、私が見る唯一の例はsuper()(引数なし)かsuper(x, y)(特定の引数付き)です。 super.apply(this, arguments)は動作していません。可変引数を持つES6クラスのsuper()

+0

拡散演算子が適しています。 – Oriol

+0

'this.'がすでに初期化されていれば' super.constructor.apply(this、arguments) 'が動作するでしょう – Bergi

答えて

18

私が便利見つけ、続くパターンは、あなたが持っている場合は

constructor(...args) { 
    super(...args); 
} 

で、あなたの代わりにこれを行うことが名前付き引数を使用します。

constructor(a, b, c) { 
    super(...arguments); 
} 

参考文献:

+1

ブラウザでこれを使用している場合は、サポートがかなり新しく何らかの理由でサポートされているので、普及した演算子は、 'class'のような他のES6の機能より遅れて来ました。たとえば、私はIEのサポートはないと思う。もちろん、蒸散器を使うこともできます。 – jfriend00

+2

@ jfriend00 IEはES2015からほとんど何もサポートしていないので、だれが気にします:-) – zerkms

+3

最新のものではなく、 'class'をサポートしているが、普及しているオペレータをサポートしていないChromeのバージョンを見つけるのは簡単です。私は彼らが必要とするブラウザをサポートしていることをOPにアドバイスしています。あまり守らないでください。あなたの環境がそれをサポートしているなら、これは良い答えです。 – jfriend00

関連する問題