이것은 Javascript 언어의 키워드입니다.
함수 실행 시 자동으로 생성되는 내부 객체를 나타내며, 함수 내부에서만 사용할 수 있습니다. 예를 들어
function test(){
this.x = 1;
}
this의 값은 함수를 사용함에 따라 변경됩니다. 그러나 일반적인 원칙이 있습니다. 즉, 함수를 호출하는 객체를 참조한다는 것입니다.
다음은 4가지 상황에서 this의 사용법을 자세히 논의한 것입니다.
시나리오 1: 순수 함수 호출 가장 일반적인 함수 사용법이자 전역 호출이므로 전역 개체 Global을 나타냅니다.
다음 코드를 보세요. 실행 결과는 1입니다.
함수 테스트(){
이 .x = 1;
alert(this.x)
}
test() // 1
이를 증명하기 위해 코드를 일부 변경했습니다.
var x = 1;
function test(){
경보(this.x)
}
test(); // 1
실행 결과는 여전히 1입니다. 다시 변경하세요:
var x = 1;
함수 테스트(){
this.x = 0
}
test()
경고(x) ; // 0
사례 2: 객체 메소드로 호출 함수는 객체의 메소드로 호출될 수도 있습니다. 상위 개체를 가리킨다.
function test(){
경고(this.x)
}
o.x = 1
o.m = test; >
o.m(); // 1
3번 사례는 생성자로 호출됩니다.
생성자라 불리는 것은 새로운 객체를 생성하는 것입니다. 이 기능을 통해. 이때 this는 새로운 객체를 가리킨다.
이 .x = 1;
}
var o = new test()
alert(o.x); 🎜>실행 결과는 1입니다. 현재 이것이 전역 객체가 아니라는 것을 보여주기 위해 코드를 일부 변경했습니다:
코드 복사
this.x = 1;
var o = new test ();
alert(x); //2
연산 결과는 2로 전역 변수의 값을 나타냅니다. x는 전혀 변경되지 않았습니다.
사례 4 적용 호출
apply()는 함수 개체의 메서드입니다. 해당 함수의 첫 번째 매개 변수는 다음을 나타냅니다. 이 함수가 호출되는 변경된 개체입니다. 따라서 이는 첫 번째 매개변수를 나타냅니다.
코드 복사 코드는 다음과 같습니다.
var o={};
o.x = 1; 🎜>
o.m = test;
o.m.apply(); //0
apply()의 매개변수가 비어 있으면 기본적으로 전역 객체가 호출됩니다. 따라서 이때의 실행결과는 0이 되어 전역객체를 참조하고 있음을 증명한다.
마지막 코드 줄을
코드 복사
코드는 다음과 같습니다.
o.m.apply(o) //1
실행 결과는 1이 되는데, 이는 현재 객체 o를 나타냄을 증명합니다.