>웹 프론트엔드 >JS 튜토리얼 >ES6에서 화살표 함수에는 자체 인수 개체가 있습니까?

ES6에서 화살표 함수에는 자체 인수 개체가 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-18 15:57:03206검색

Do Arrow Functions Have Their Own Arguments Object in ES6?

ES6 화살표 함수: 인수의 수수께끼

JavaScript 영역에서 화살표 함수는 기존 함수에 대한 간결하고 우아한 대안으로 등장했습니다. 함수 선언. 그러나 화살표 함수 내의 인수 개체 처리는 논란을 불러일으켜 다양한 플랫폼에서 충돌하는 동작을 초래했습니다.

TC39 위원회의 초기 권장 사항에서는 화살표 함수가 자체 인수 바인딩을 가져서는 안 된다고 제안했습니다. 상위 범위의 인수 개체입니다. 그러나 일부 브라우저(Chrome, Firefox, Node)는 이 개념과 모순되는 것으로 보이며 화살표 함수가 포함된 범위의 인수 객체에 액세스할 수 있도록 허용합니다.

이 모호성을 명확히 하기 위해 공식 문서를 자세히 살펴보겠습니다.

  • ES6 사양, 섹션 14.2.11.1: "화살표 함수 표현식은 [[ThisMode]]가 어휘로 설정된 함수로 평가됩니다." 이는 화살표 함수가 상위 범위의 어휘 환경을 상속한다는 것을 의미합니다.
  • ES6 사양, 섹션 18: "(18 a) 화살표 함수에는 인수 개체가 없습니다." 이 진술은 화살표 함수에 자체 인수 객체가 없음을 명시적으로 확인합니다.

이러한 공식 문서에 따르면 Chrome, Firefox 및 Node에서 관찰된 동작이 잘못된 것이 분명합니다. 화살표 함수는 인수 바인딩을 갖도록 고안된 것이 아니며 이 동작에 의존하면 코드가 신뢰할 수 없고 혼란스러워질 수 있습니다.

따라서 개발자는 화살표 함수의 의도된 의미를 준수하고 인수의 존재에 의존하지 않아야 합니다. 해당 범위 내의 인수 개체입니다. 이렇게 하면 모든 JavaScript 플랫폼에서 일관되고 예측 가능한 동작이 보장됩니다.

위 내용은 ES6에서 화살표 함수에는 자체 인수 개체가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.