Heim >Web-Frontend >js-Tutorial >Warum schlagen meine d3.js-Pfeilfunktionen in IE11 fehl?

Warum schlagen meine d3.js-Pfeilfunktionen in IE11 fehl?

Linda Hamilton
Linda HamiltonOriginal
2024-12-20 07:43:13300Durchsuche

Why Are My d3.js Arrow Functions Failing in IE11?

Pfeilfunktionssyntaxfehler in IE 11

Bei Verwendung von d3.js zur Visualisierung tritt bei der Ausführung im IE ein Codeabschnitt auf einen Syntaxfehler auf 11. Der Fehler tritt speziell innerhalb der zur Definition verwendeten Pfeilfunktionen auf Attribute.

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"));

Das Problem

Die Ursache des Fehlers ist die Verwendung von Pfeilfunktionen d => {}, die in IE 11 nicht unterstützt werden. Pfeilfunktionen sind eine moderne JavaScript-Syntax, die in ES6 eingeführt wurde, während IE 11 nur bis ES5 unterstützt.

Die Lösung

Um das Problem zu beheben, ersetzen Sie die Pfeilfunktionen durch die herkömmliche Funktionssyntax, die vom IE verstanden wird 11.

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";
    });

Zusätzliche Überlegungen

Während die traditionelle Funktionssyntax in IE 11 unterstützt wird, wird im Allgemeinen empfohlen, moderne JavaScript-Funktionen zu verwenden, wenn dies möglich ist und diese bieten saubererer und effizienterer Code. Aus Kompatibilitätsgründen mit älteren Browsern wie IE 11 ist es in diesem Fall jedoch erforderlich, die ES5-Syntax zu verwenden.

Das obige ist der detaillierte Inhalt vonWarum schlagen meine d3.js-Pfeilfunktionen in IE11 fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn