首頁 >web前端 >js教程 >為什麼箭頭函數在 IE11 中不起作用,如何修復?

為什麼箭頭函數在 IE11 中不起作用,如何修復?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-15 13:00:22748瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn