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 의 값.

좋은 웹페이지 즐겨찾기