티스토리 뷰
1.3 클래스
- 특정한 형태의 객체를 반복적으로 만들기 위해 사용되는 것
- 클래스의 특징
- constructor : 중복으로 정의할 수 없고, 별다르게 수행할 작업이 없으면 생략 가능
- 프로퍼티 : 클래스로 인스턴스 생성 시 내부에 정의할 수 있는 속성값
- TS 사용하면 private, protected, public(기본값) 사용 가능
- getter & setter
- getter : 속성값을 확인하고 싶을 때 사용 (get name () {return this.name})
- setter : 속성값을 변경하고 싶을 때 사용(set name (newName) { [this.name](<http://this.name>) = newName})
- 정적 메서드 & 인스턴스 메서드
- 정적 메서드 : 클래스 자체에서 사용할 수 있는 속성으로 인스턴스에서 사용 불가능(전역에서 사용되는 유틸함수로 많이 활용)
- 인스턴스 메서드 : 인스턴스에서만 사용할 수 있는 속성. 프로토타입 메서드라고도 불림.(브라우저 호환성 때문에 __proto__ 가 존재하지만 Object.getPrototypeOf 사용 권장)
- 상속 : extends 키워드로 클래스를 상속받아 확장할 수 있음
- 클래스와 함수의 관계
- ES6에서 class가 추가됨. 이전에는 함수 기반으로 prototype 체이닝을 통해 구현함.
- class는 prototype 체이닝을 좀 더 쉽게 구현할 수 있도록 만든 문법적 설탕
1.4 클로저
- 정의(MDN) : 함수와 함수가 선언된 lexical environment의 조합
- 함수가 선언된 환경을 기억하는 것
- 클로저의 활용
- 데이터 보안(접근 권한 제어)
- 콜백함수 내부에서 외부 데이터를 사용하고 싶을 때
- 부분적용함수, 커링함수에서 활용
- 리액트에서의 클로저
- useState : setState 내부에서 최신값을 알고있는 것 (클로저 활용)
- 클로저 사용 시 주의할 점
- var 를 사용하면 전역스코프에 선언되므로 주의해야 함. (let, const를 사용하면 해결 가능)
- 선언될 시점의 outerEnvironmentReference를 기억하고 있어야하므로 메모리 비용 발생
'TIL > 일기, 공부 내용 정리' 카테고리의 다른 글
JWT란 무엇인가? (0) | 2025.02.14 |
---|---|
이벤트 루프와 비동기 통신 (1) | 2025.01.22 |
자바스크립트의 동등 비교, 함수 (1) | 2025.01.03 |
클래스 (0) | 2024.12.27 |
프로토타입 (0) | 2024.12.26 |