箭頭函數和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中文網其他相關文章!