2016-10-20 6 views
1

私はネイティブJSのArrayを拡張しようとしています。しかし、プロトタイプを変更するだけではありません。私はそれに新しいclass es2015の構文を付け加えると思いました。Babelは正しく配列を拡張できませんか?

ネイティブにそれを試す(クロームはすでにそれをサポート - イェーイヽ( '▽ `)ノ)とすべてがうまく動作します。より良いサポートのためにバベルに切り替えると、動作が停止します。ちょっと試した後、私は、新しいオブジェクトで利用可能なメソッドがないことを知りました。試験コード:

class CustomList extends Array { 
    constructor(...elms) { 
    super(...elms); 

    this.testprop = "test"; 
    } 

    customMethod(a) { 
    console.log(a, this); 
    } 
} 

(test in babel)

+1

私は少しだようhttps://babeljs.io/docs/usage/caveats/#classes – undefined

+0

@ unlucky13はそう...不運を参照してください?コメントを 感謝。それはそれのように思える。私はそれを受け入れることができるようにそれをアシュワーとして追加することを心配していますか?ありがとう " –

答えて

3
適切ビルトインクラスを拡張することができない

Babel.js:

ビルトインクラスようArrayDateとして、DOM等を適切にすることはできませんES5の制限のためにサブクラス化されました(es2015-classesプラグインの場合)。あなたはObject.setPrototypeOfReflect.constructに基づいてbabel-plugin-transform-builtin-extendを使用しようとすることができ、それはまた、いくつかの制限があります。

からhttps://babeljs.io/docs/usage/caveats/#classes

関連する問題