Maison >interface Web >js tutoriel >Pourquoi les fonctions fléchées ne fonctionnent-elles pas dans IE11 et comment puis-je y remédier ?
Fonctions fléchées et compatibilité IE 11 : comprendre l'erreur de syntaxe
Dans le domaine de la programmation JavaScript, les fonctions fléchées offrent une syntaxe concise pour définir des fonctions . Cependant, ces fonctions peuvent ne pas toujours être compatibles avec les anciens navigateurs, notamment Internet Explorer 11 (IE 11).
Dans le cas de l'extrait de code fourni :
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"));
Lorsque ce code est exécuté dans IE 11, une erreur de syntaxe est rencontrée. La raison sous-jacente réside dans l'utilisation de fonctions fléchées, qui sont introduites dans ES6 (ECMAScript 2015) et non prises en charge par IE 11.
Surmonter le problème de compatibilité
Pour Pour rendre le code compatible avec IE 11, les fonctions fléchées doivent être remplacées par des déclarations de fonctions traditionnelles. Le code ES5 correspondant ressemblerait à ce qui suit :
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"; });
En utilisant des déclarations de fonction traditionnelles, ce code modifié s'exécutera avec succès dans IE 11, en préservant la fonctionnalité prévue. Il est important de noter que les fonctions traditionnelles ont des règles différentes pour lier le mot-clé this par rapport aux fonctions fléchées, ces différences doivent donc être prises en compte lors de la transition du code entre les versions de JavaScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!