Javascript에서 \'This\'가 일관되지 않게 동작하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-22 11:19:03
원래의
614명이 탐색했습니다.

Why Does

Javascript의 "this" 연산자와의 불일치

Javascript의 "this" 연산자는 다음과 같은 이유로 많은 개발자에게 혼란을 야기했습니다. 상황에 따라 행동이 달라집니다. 이 문서의 목적은 "이것"이 작동하는 방식을 명확히 하고 잠재적인 문제를 완화하기 위한 모범 사례를 제공하는 것입니다.

호출 패턴 이해

"이것"을 이해하는 열쇠는 Javascript에서 함수를 호출할 수 있는 다양한 방법:

  • 메서드: 함수가 객체의 메소드로 호출될 때 "this"는 해당 객체를 나타냅니다.
  • 함수: 함수가 독립 실행형 엔터티로 호출될 때 "this"는 전역 개체(일반적으로 창)를 참조합니다.
  • 생성자: 함수가 새 키워드로 호출되면 "this"는 새로 생성된 객체를 나타냅니다.
  • Apply: apply() 메소드를 사용하면 "this"의 값을 지정하고 전달할 수 있습니다. 인수 배열.

콜백 함수 및 "this"

메서드를 콜백 함수로 사용할 때 일관성 없는 동작이 자주 발생합니다. 콜백은 함수로 호출되므로 "this"는 기본값으로 전역 객체가 됩니다. 이로 인해 특히 원본 개체의 속성에 액세스할 때 의도하지 않은 동작이 발생할 수 있습니다.

일관성을 보장하기 위한 모범 사례

"이" 동작의 일관성을 보장하려면 다음을 고려하세요. 다음 모범 사례를 따르세요.

  • "that" 변수 사용: 메서드 내에서 "this"에 변수를 할당합니다. 이 변수는 콜백 호출을 통해 유지됩니다.
  • 화살표 함수 사용: 화살표 함수는 자신의 "this" 값을 바인딩하지 않고 바깥쪽 범위에서 상속합니다. 이는 일관된 참조를 제공할 수 있습니다.
  • "this" 바인딩: 바인딩() 메서드를 사용하면 지정된 "this" 값을 사용하여 새 함수를 생성하여 콜백 호출 전반에 걸쳐 일관성을 보장할 수 있습니다.

위 내용은 Javascript에서 \'This\'가 일관되지 않게 동작하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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