중첩 함수의 JavaScript "this" 포인터 미스터리
JavaScript 코드 조각에서 "this"와 관련하여 예상치 못한 동작이 발생했습니다. 중첩된 함수 내의 " 포인터입니다. 객체 메서드 내에서 중첩 함수를 정의했음에도 불구하고 중첩 함수 내부의 "this" 포인터는 전역 "창" 객체를 가리킵니다.
"this" 포인터의 동작은 함수 호출 메서드에 의해 결정됩니다. 자바스크립트. 세 가지 기본 메서드가 있습니다:
직접 호출: someThing.someFunction(arg1, arg2, argN)
Function Call with call(): someFunction.call(someThing, arg1, arg2, argN)
함수 apply()를 사용한 호출 : someFunction.apply(someThing, [arg1, arg2, argN])
제공한 예에서 중첩 함수는 명시적인 함수 호출 방법 없이 호출됩니다. 결과적으로 "this" 포인터는 일반적으로 브라우저 환경의 "window" 개체인 전역 개체로 기본 설정됩니다.
"this" 포인터 동작을 명시적으로 지정하려면 다음 수정 사항을 사용할 수 있습니다. :
이 방법 중 하나를 활용 를 사용하면 중첩된 함수 내에서 "this" 포인터의 동작을 제어하고 원하는 객체를 참조하는지 확인할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3