Rumah >hujung hadapan web >tutorial js >Mengapa Fungsi Anak Panah d3.js Saya Gagal dalam IE11?

Mengapa Fungsi Anak Panah d3.js Saya Gagal dalam IE11?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 07:43:13250semak imbas

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

Ralat Sintaks Fungsi Anak Panah dalam IE 11

Menggunakan d3.js untuk visualisasi, sekeping kod menghadapi ralat sintaks apabila dilaksanakan dalam IE 11. Ralat berlaku secara khusus dalam fungsi anak panah yang digunakan untuk menentukan atribut.

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

Isunya

Penyebab ralat ialah penggunaan fungsi anak panah d => {}, yang tidak disokong dalam IE 11. Fungsi anak panah ialah sintaks JavaScript moden yang diperkenalkan dalam ES6, manakala IE 11 hanya menyokong sehingga ES5.

Penyelesaian

Untuk menyelesaikan isu, gantikan fungsi anak panah dengan sintaks fungsi tradisional, yang difahami oleh IE 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";
    });

Pertimbangan Tambahan

Walaupun sintaks fungsi tradisional disokong dalam IE 11, secara amnya disyorkan untuk menggunakan ciri JavaScript moden apabila boleh, seperti yang ditawarkan kod yang lebih bersih dan cekap. Walau bagaimanapun, untuk keserasian dengan pelayar lama seperti IE 11, anda perlu menggunakan sintaks ES5 dalam kes ini.

Atas ialah kandungan terperinci Mengapa Fungsi Anak Panah d3.js Saya Gagal dalam IE11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn