> 웹 프론트엔드 > JS 튜토리얼 > 'this' 키워드는 JavaScript의 화살표 함수와 일반 함수 사이에서 어떻게 다릅니까?

'this' 키워드는 JavaScript의 화살표 함수와 일반 함수 사이에서 어떻게 다릅니까?

Mary-Kate Olsen
풀어 주다: 2024-12-10 02:14:13
원래의
669명이 탐색했습니다.

How Does the

화살표 함수와 컨텍스트 없는 "This"

ES6에서 화살표 함수는 함수 선언을 위한 간결한 구문을 제공합니다. 그러나 화살표 함수와 기존 함수의 주요 차이점 중 하나는 "this" 키워드를 처리한다는 것입니다.

주어진 코드에 표시된 대로 개체 내부에서 화살표 함수를 사용하는 경우:

var person = {
  name: "jason",

  shout: () => console.log("my name is ", this.name)
}
로그인 후 복사

화살표 함수 내의 "this" 키워드는 "person" 개체를 참조하지 않습니다. 대신 화살표 함수가 생성된 범위(이 경우 전역 범위)를 가리킵니다. 따라서 "person.shout()"을 호출하면 "jason" 속성 없이 "my name is"가 기록됩니다.

이 문제를 해결하려면 화살표 함수 대신 일반 함수 구문을 사용할 수 있습니다.

var person = {
  name: "jason",

  shout: function() {
    console.log("my name is ", this.name)
  }
}
로그인 후 복사

일반 함수에서 "this"는 해당 함수를 소유한 개체를 나타냅니다. 따라서 호출 시 "my name is jason"이 올바르게 출력됩니다.

또는 화살표 함수 구문과 유사한 ES6 메서드 선언 구문을 활용할 수 있습니다.

var person = {
  name: "jason",

  shout() {
    console.log("my name is ", this.name)
  }
}
로그인 후 복사

이 구문을 사용하면 함수 선언에서 콜론(:)과 "function" 키워드가 생략됩니다. 그러나 여전히 일반 함수 선언 구문을 사용하여 "this"가 객체에 바인딩되도록 합니다.

위 내용은 'this' 키워드는 JavaScript의 화살표 함수와 일반 함수 사이에서 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿