84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
코드로 바로 이동:
위 코드의 이 점이 다른 이유는 무엇인가요?
이제 잘 이해가 되었습니다. 답변 부탁드립니다!
함수 차용과 생성자 함수를 버리고 이제 두 가지 유형만 남았습니다. 하나는 일반 함수이고 다른 하나는 객체 메서드입니다.
객체 메서드는 객체를 가리키고, 일반 함수는 전역을 가리킵니다.
누가 이 함수를 호출하든 this누구를 가리킵니다.
this
this的指向只和你如何调用这个函数有关,比如你说第一个this指向test,这可不一定,有的是办法把这个this的指向改掉。只有当你运行test.outer()的时候,第一个this才会指向test의 지정은 이 함수를 호출하는 방법에만 관련됩니다. 예를 들어 첫 번째
test
test.outer()
/a/11...
이것은 클로저 문제입니다. 함수 메소드를 포함하여 객체 리터럴을 통해 객체에 속성이 할당되면 이 함수 메소드에는 콘솔 출력이 있고 이 함수에서 함수가 선언되면 일반적인 상황에서 클로저 문제가 발생합니다. , 이것은 창을 가리킨다. 특별한 상황에서는 이 값을 변경할 수 있다. 내가 쓴 패킷 폐쇄에 대한 글을 읽으면 내 프로필을 읽을 수 있다.
실제로 익명으로 답변하는 것은 옳지 않습니다! 객체의 함수 내부에 정의된 함수는 this 내부는 물론 상위 환경 변수를 직접 얻을 수 없습니다. 이 방법으로 var that=this와 같은 변수를 정의해야 합니다. 이 객체의 레벨을 지정합니다. var test = {
함수 차용과 생성자 함수를 버리고 이제 두 가지 유형만 남았습니다. 하나는 일반 함수이고 다른 하나는 객체 메서드입니다.
객체 메서드는 객체를 가리키고, 일반 함수는 전역을 가리킵니다.
누가 이 함수를 호출하든
this
누구를 가리킵니다.
가this
的指向只和你如何调用这个函数有关,比如你说第一个this
指向test
,这可不一定,有的是办法把这个this
的指向改掉。只有当你运行test.outer()
的时候,第一个this
才会指向test
의 지정은 이 함수를 호출하는 방법에만 관련됩니다. 예를 들어 첫 번째test
를 가리키는 경우 반드시 그렇지는 않습니다. 🎜.test.outer()
를 실행할 때만 첫 번째 🎜가test
를 가리킵니다. 🎜/a/11...
이것은 클로저 문제입니다. 함수 메소드를 포함하여 객체 리터럴을 통해 객체에 속성이 할당되면 이 함수 메소드에는 콘솔 출력이 있고 이 함수에서 함수가 선언되면 일반적인 상황에서 클로저 문제가 발생합니다. , 이것은 창을 가리킨다. 특별한 상황에서는 이 값을 변경할 수 있다. 내가 쓴 패킷 폐쇄에 대한 글을 읽으면 내 프로필을 읽을 수 있다.
실제로 익명으로 답변하는 것은 옳지 않습니다! 객체의 함수 내부에 정의된 함수는 this 내부는 물론 상위 환경 변수를 직접 얻을 수 없습니다. 이 방법으로 var that=this와 같은 변수를 정의해야 합니다. 이 객체의 레벨을 지정합니다.
으아악var test = {