티스토리 뷰

TIL/일기, 공부 내용 정리

클래스, 클로저

Jin_frontend 2025. 1. 21. 10:43

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함