화살표 함수와 컨텍스트 없는 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!