평상시 이것을 사용하면 좀 헷갈려서 요약해서 쓰겠습니다.
화살표 함수가 있기 전에는 이것은 함수가 실행되는 환경 객체라고 말했지만, 화살표 함수에서는 이것이 정의된 객체였습니다. 먼저 모두가 알고 있는 것, 즉 함수가 실행되는 환경 객체에 대해 이야기해 보겠습니다. 실행 중입니다.
1. 이는 전역 객체를 가리킵니다.
2 객체에 대한 메서드 호출로서 객체는 호출 컨텍스트이고, 이는 객체를 가리킵니다.
3 생성자는 새로 생성된 객체를 초기화하려고 시도하고 이 객체를 호출 컨텍스트로 사용하며 이는 새로 생성된 객체를 가리킵니다.
4. 함수의 호출/적용 메서드를 통한 간접 호출 호출/적용 메서드의 첫 번째 매개변수는 호출 컨텍스트입니다.
화살표 함수에서 this 객체는 이것이 정의된 범위입니다. 즉, 화살표 함수 자체에는 이것이 없으며, 내부 this는 의 범위에 있는 것입니다. 외부 코드 블록.
5, 독립 함수
화살표 함수는 전역 환경에서 정의됩니다. 즉, 이것은 window
6를 가리키고, 개체 메서드는
위에 표시된 것처럼 foo는 전역 환경에 정의되어 있으므로 이것이 창을 가리킨다면 어떻게 obj를 가리키게 만들 수 있을까요?
이전 기사에 따르면 함수가 객체의 메서드로 호출될 때 이것은 객체를 가리킬 수 있습니다. 다음과 같이 다시 작성하세요:
func는 foo가 Definition이라고 불릴 때 호출됩니다. 이때 foo의 범위는 obj이므로 이는 obj
7 및 생성자 를 가리킵니다. 생성자로 사용할 수 없습니다. 그렇지 않으면 오류가 보고됩니다
8, bind/call
: func는 전역적으로 정의되므로 0을 인쇄합니다. 객체 메소드를 사용하면 다음과 같이 다시 작성하여 1을 인쇄할 수 있습니다
추천 튜토리얼: "JS Tutorial"
위 내용은 JS 유용한 정보 공유 - 이것이 문제를 지적합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!