Javascript에서 "this" 연산자가 일관성이 없는 이유는 무엇입니까?
JavaScript에서 "this" 연산자는 다음에 따라 다양한 동작을 나타냅니다. 호출 컨텍스트. 이는 특히 콜백 및 객체로 작업할 때 혼란과 예상치 못한 결과를 초래할 수 있습니다.
호출 패턴 및 "this" 바인딩
"this" 연산자는 다음에 바인딩됩니다. 함수 호출 중 객체 또는 클래스. 이 바인딩은 호출 패턴에 의해 결정됩니다:
콜백 수수께끼
이 문제는 메서드의 콜백이 함수로 호출될 때 발생합니다. 콜백은 메소드로 호출되지 않으므로 "this"는 원래 의도했던 객체가 아닌 전역 범위를 참조합니다.
모범 사례
유지 관리 전략 한 가지 콜백 내 "this" 바인딩의 일관성은 "var that = this;"를 사용하는 것입니다. 무늬. 이는 "this"(객체)에 대한 참조를 새 변수(that)에 할당한 다음 콜백 내에서 사용할 수 있도록 합니다.
또 다른 권장 접근 방식은 JavaScript의 함수형 프로그래밍 측면을 수용하고 클래스에 의존하지 않는 것입니다. 그리고 상속 패턴. 순수 함수와 고차 함수를 사용하면 논리를 개체 상태에서 분리하고 보다 모듈화되고 예측 가능한 코드를 얻을 수 있습니다.
또한 "이" 바인딩 및 개체를 처리하는 메커니즘을 제공하는 JavaScript 프레임워크 사용을 고려하세요. 일관된 방식으로 프로그래밍 지향. 예상치 못한 동작을 방지하려면 프레임워크의 문서와 특징을 주의 깊게 검토하세요.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3