ホームページ > ウェブフロントエンド > jsチュートリアル > IE11 でアロー関数が機能しないのはなぜですか?それを修正するにはどうすればよいですか?

IE11 でアロー関数が機能しないのはなぜですか?それを修正するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-15 13:00:22
オリジナル
747 人が閲覧しました

Why Don't Arrow Functions Work in IE11, and How Can I Fix It?

アロー関数と IE 11 の互換性: 構文エラーを理解する

JavaScript プログラミングの領域では、アロー関数は関数を定義するための簡潔な構文を提供します。 。ただし、これらの関数は、Internet Explorer 11 (IE 11) などの古いブラウザーと必ずしも互換性があるとは限りません。

提供されたコード スニペットの場合:

g.selectAll(".mainBars")
    .append("text")
    .attr("x", d => (d.part == "primary" ? -40 : 40))
    .attr("y", d => +6)
    .text(d => d.key)
    .attr("text-anchor", d => (d.part == "primary" ? "end" : "start"));
ログイン後にコピー

このコードがIE 11 で実行すると、構文エラーが発生します。根本的な理由は、ES6 (ECMAScript 2015) で導入され、IE 11 ではサポートされていないアロー関数の使用にあります。

互換性の問題を解決する

コードを IE 11 と互換性を持たせるには、アロー関数を従来の関数宣言に置き換える必要があります。対応する ES5 コードは次のようになります。

g.selectAll(".mainBars").append("text").attr("x", function (d) {
  return d.part == "primary" ? -40 : 40;
}).attr("y", function (d) {
  return +6;
}).text(function (d) {
  return d.key;
}).attr("text-anchor", function (d) {
  return d.part == "primary" ? "end" : "start";
});
ログイン後にコピー

従来の関数宣言を利用することで、この変更されたコードは IE 11 で正常に実行され、意図した機能が維持されます。従来の関数には、アロー関数と比べて this キーワードのバインドに関するルールが異なることに注意することが重要です。そのため、JavaScript のバージョン間でコードを移行する際には、これらの違いを考慮する必要があります。

以上がIE11 でアロー関数が機能しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート