JavaScript 에서 함수 에서 this 의 값 은 도대체 누 구 를 가리 키 는 것 입 니까?어떻게 문맥 을 이해 합 니까?
1468 단어 JavaScript
var f = function(){
var this_obj = this;
}
var o={name:"o"}
o.f = f;
f(); // this_obj window
o.f();// this_obj o
똑 같이 f. 함수, 단독 호출 시 thisobj 의 값 은 window 대상 이 고 o 대상 을 통 해 시간 값 을 o 대상 으로 호출 합 니 다.그러면 함수 정의 가 this 라 는 값 이 무엇 인지 어떻게 이해 합 니까?
나의 이해:
우선 문맥 context 가 무엇 입 니까?
많은 자료 문 서 를 자주 볼 수 있 지만 문맥 이 언급 되 어 있 지만 잘 이해 되 지 않 습 니 다.지금 시도 해 보 세 요. 자신의 이 해 를 쓰 는 것 도 정리 하 는 셈 입 니 다.
문맥 나 는 그것 을 현재 실행 환경 으로 이해 했다. 프로그램 이 실 행 될 때 프로그램의 모든 문 구 는 해당 하 는 문맥, 즉 실행 환경 이 있다.
//eg1.
var global_var = "global";
var this_obj = this;
예 를 들 어 위의 eg1. 문 구 를 실행 하기 전에 상상 할 수 있 습 니 다. 문맥 대상 이 있 는데 이름 은 입 니 다.context, 컨 텍스트 대상 은 window 대상, 즉:context= window。
문장 이 실 행 된 후 전역 변 수 를 정 의 했 습 니 다. 즉, window.global_val 。
이렇게 다음 코드 에 global 을 사용 합 니 다.val 변 수 는 컨 텍스트 대상 에 접근 하여 해당 변 수 를 찾 습 니 다. _context.global_val。
함수 f () 를 직접 호출 합 니 다. 이때 함수 내 컨 텍스트 대상 은 window 입 니 다.
대상 o 호출 f 함수, 즉 o. f () 함수 내 컨 텍스트 대상 이 window. o 대상 입 니 다.
o. test. f () 함수 의 상하 문 대상 은 윈도 우즈. o. test 대상 이다.
this 의 값 은 this 코드 위치 로 실 행 될 때 상하 문 에 대응 하 는 상하 문 대상 입 니 다.함수 정 의 는 this 를 실행 하지 않 았 습 니 다.obj = this 문장, 그래서 함수 정 의 는 thisobj 대상 이 정의 되 지 않 았 습 니 다. 그의 값 은 undefined 입 니 다. 함수 호출 시 설명 하면 서 실행 해 야 합 니 다. this 를 실행 합 니 다.obj = this 에서 호출 함 수 를 분석 합 니 다.this 를 확인 할 수 있 습 니 다.obj 의 값.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.