CODEDRAGON ㆍDevelopment/JavaScript, jQuery, ...
객체 참조(바인딩) 규칙
javascript의 this가 해당 함수 호출 패턴에 따라 객체를 어떻게 참조하는지에 대한 규칙입니다.
구분 |
설명 |
1 |
· 기본적으로 this는 전역 객체를 참조합니다. |
2 |
· 메소드 내부의 this는 해당 메소드를 호출한 부모 객체를 참조합니다. |
3 |
· 생성자 함수 코드 내부의 this는 새로 생성된 객체를 참조합니다. |
4 |
· call()과 apply() 메소드로 함수를 호출할 때, 함수의 this는 첫 번째 인자로 넘겨받은 객체를 참조합니다. |
5 |
· 프로토타입 객체 메소드 내부의 this도 해당 메소드를 호출한 부모 객체를 참조합니다. · 호출의 주체인 콘텍스트 객체로 호출됐다면 바로 이 콘텍스트 객체로 바인딩됩니다. |
6 |
· JavaScript의 this 키워드는 접근제어자 public 역할을 합니다. · 기본 바인딩에서 엄격 모드는 undefined, 그 밖엔 전역 객체로 바인딩됩니다. |
JavaScript에서는 내부 함수 호출 패턴을 정의해 놓지 않기 때문입니다. 내부 함수도 결국 함수이므로 이를 호출할 때는 함수 호출로 취급되어 함수 호출 패턴 규칙에 따라 내부 함수의 this는 전역 객체를 참조하게 됩니다.
'Development > JavaScript, jQuery, ...' 카테고리의 다른 글
in (속성이 객체에 있는지 확인) (0) | 2019.01.11 |
---|---|
자바스크립트 - self (0) | 2019.01.11 |
객체 호출 하기-객체 프로퍼티 접근 방법, 객체에서 메서드 호출, 속성 호출시 대괄호 연산자만 쓸 수 있는 경우-식별자로 사용할 수 없는 프로퍼티명을 사용하는 경우 , 변수의 값을 프로퍼티. (0) | 2019.01.11 |
JavaScript - 프로퍼티(property), 프로퍼티 생성, 프로퍼티 참조, 프로퍼티 삭제 (0) | 2019.01.11 |
for in 반복문, for in 반복문 형식, 확장 for문 vs for in반복문 비교, 자바스크립트에서 for in문 vs for문 사용, 배열의 프로퍼티 열거, 배열 요소와 객체 속성 접근 방법 (0) | 2019.01.11 |