의 행동은 숙련 된 프로그래머조차도 여행 할 수 있습니다. 이 기사는 javaScript에서 this
의 복잡성을 명확하게합니다
주요 개념 : this
this
문맥 바인딩 :
JavaScript에서는 정적으로 정의되지 않았습니다. 그 값은 전적으로 가 선언 된 위치가 아닌 (실행 컨텍스트) 호출되는 방법에 따라 다릅니다. 그것은 현재 실행중인 함수의 "소유자"를 가리 킵니다. 변수 동작 :
의 동작은 다른 상황에 따라 다릅니다 : 글로벌 범위, 간단한 함수 호출, 개체 메소드 및 생성자 함수this
일반적인 함정 : 오해 는 초보자와 전문가 모두에게 빈번한 오류의 원인입니다.
this
call()
apply()
JavaScript 함수가 실행되면 새로운 실행 컨텍스트가 생성됩니다. 이 컨텍스트는 함수의 호출 값을 포함하여 함수의 호출에 대한 정보가 포함되어 있으며,이 값은 함수 (해당되는 경우)라고하는 객체에 바인딩됩니다.
bind()
this
참조 :
this
컨텍스트 호출 컨텍스트 :
this
글로벌 범위 : 글로벌 범위 (모든 함수 외부)에서 this
는 일반적으로 글로벌 객체 (예 : 브라우저에서
객체 컨텍스트가없는 직접 함수 호출. 비 스트릭 모드에서 는 글로벌 객체로 기본적으로 변합니다. 엄격한 모드 (this
객체 메소드 : "use strict";
함수가 객체의 메소드로 호출되면 this
는 해당 객체에 바인딩됩니다. undefined
.
조작 : this
: new
는 지정된 this
값과 인수가 개별적으로 전달 된 함수를 호출합니다.
: 와 유사하지만 인수를 배열로 받아들입니다.
this
call()
값을 영구적으로 바인딩하는 새 함수를 만듭니다.
apply()
bind()
요약 : this
자주 묻는 질문 (faqs) : call()
원본 텍스트의 FAQ 섹션은 이미 일반적인 관련 질문과 답변에 대한 포괄적 인 요약이므로 그대로 유지하는 것이 가장 좋습니다.
위 내용은 JavaScript의 내부 작업을 공개합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!