検索

ホームページ  >  に質問  >  本文

javascript - 事前定義されたクラス変換の継承に関する Babel の問題

ES6 を使用して Array を継承するクラスを作成し、プッシュ メソッドをオーバーライドしましたが、babel を使用して ES5 に変換した後、呼び出されたメソッドがまだ元のプッシュ メソッドであることがわかりました。

.babelrc: リーリー

ES6コンパイル前のコード: リーリー

ES5babel によってコンパイルされたコード: リーリー

実際には、ROUTE クラス インスタンスのメソッドが実行されるとき、_createClass メソッドのビジネス ロジック コードはまったく呼び出されず、プッシュ メソッドがオーバーライドされない限り、Array のプッシュ メソッドのみが実行されます。コンストラクター。

バベルのバージョン:

リーリー

曾经蜡笔没有小新曾经蜡笔没有小新2794日前565

全員に返信(1)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:32:16

    部分的なサポート
    ES5 エンジンの制限により、HTMLElement などのクラスはサブクラス化できますが、Date、Array、Error などの多くのクラスはサブクラス化できないため、組み込みのサブクラス化可能性はケースバイケースで評価する必要があります。

    ブラウザエンジンの制限のため、BabelはDate、Array、Errorなどの一部の組み込みクラスのサブクラスをサポートしていないため、独自のニーズに応じて必要な型を定義してください

    参考: https://babeljs.io/learn-es20...

    返事
    0
  • キャンセル返事