-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
주제
JS에서 this가 가리키는 것이 함수 자기 자신, 메서드가 속한 인스턴스를 참조한다는 것은 틀린 말이다 ?
선정 이유
내가 알고 있는 This란 자신이 속한 객체. 자신이 생성할 인스턴스의 property, method를 참조할 수 있는 자기 참조 변수를 This라고 정의해옴.
인스턴스의 property, method가 아닌 인스턴스를 참조한다는 것이 틀렸다는 것인가?
인스턴스를 참조하는 것과 인스턴스의 propery, method를 참조하는 것이 다른 말인가? 궁금
책 내용 (p92)
함수에서 this가 가리키는 것이 함수 자기 자신이라는 오해는 많이 알려진 오해이다. this는 메서드가 속한 인스턴스를 참조한다는 오해도 있는데 JS가 아닌 다른 언어에서의 this작동 방식 때문에 이런 오해가 생겨났다. 두 오해 모두 틀렸다.
스코프
- 변수가 어떤 것을 참조하는지 결정하는 규칙 모음
- 함수를 정의하는 순간 정적으로 결정됨
- 해당 스코프에서 사용할 수 있는 한정된 변수 집합을 포함
실행 컨텍스트
- 함수는 스코프 말고 어디까지 접근이 가능한지 결정하는 특징을 갖는데 이러한 특징은 실행 컨텍스트의 개념으로 가장 잘 설명됨
- 함수의 호출방식에 따라 동적으로 결정됨
- 함수가 실행되는 동안 함수에서 사용할 수 있는 프로퍼티를 갖는 객체를 말함
This
- 함수 정의에 종속되어 결정되는 변치 않는 특성이 아니라, 함수를 호출할 때마다 결정되는 동적인 특성
- this가 있는 함수는 실행컨텍스트에 종속됨
- 함수에서 this를 사용하면 컨텍스트를 동적으로 지정(call,bind)할 수도있고 다른 객체에서 해당 함수를 재사용할 수 있게 해줌
Prototype
- this가 동적으로 결정되는 특징으로 인해 프로토타입을 통해 위임한 객체의 메서드를 호출 시 this로 property, method에 접근이 가능하게 되는 것임
아직 배울 게 많으니 코드를 보고 올바른 질문을 하는 것부터 시작하는 것이 더 나은 개발자로 만드는 아주 중요한 기술이다.
Reactions are currently unavailable