"this" 문제가 존재하는 이유는 무엇입니까?
이 문제는 JavaScript의 실행 환경이 "this"의 값을 결정하는 방식에서 발생합니다. 함수가 정의되면 "this"는 정의되지 않습니다. 함수가 객체의 메서드로 호출되는 경우 "this"는 해당 객체를 참조합니다.
그러나 함수가 독립적으로 호출되거나 콜백으로 호출되는 경우 "this"는 일반적으로 전역 객체를 참조합니다. (또는 엄격 모드에서는 정의되지 않음) 일관성과 올바른 동작을 보장하려면 .bind와 같은 메서드를 통해 "this" 값을 제어하는 것이 중요합니다.
예제 3에서는 storeMyName3이 직접 호출합니다. myName.name의 값을 반환하는 getName 함수. 이 결과는 함수가 아니라 값인 storeMyName3에 할당됩니다.
반면, 예제 1과 2에서 storeMyName 및 storeMyName2는 getName 함수 자체에 대한 참조입니다. 이를 호출하면 함수를 실행하고 결과를 얻습니다.
따라서 예제 3에서는 나중에 함수를 호출하지 않으므로 "this" 문제가 발생하지 않는 반면, 예제 1과 2에서는 .bind가 필요합니다. 나중에 호출할 때 "this" 값을 명시적으로 설정하세요.
위 내용은 JavaScript에서 \'this\' 바인딩은 언제 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!