>웹 프론트엔드 >JS 튜토리얼 >IE11에서 화살표 기능이 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

IE11에서 화살표 기능이 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 13:00:22749검색

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으로 문의하세요.