JS 딥 다이브) day3

Clear·2023년 7월 9일
0

Daily Posting

목록 보기
24/27

객체지향 프로그래밍

  • 프로그램 방법론(패러다임)의 하나로, 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형(imperative) 프로그래밍의 절차지향적 관점에서 벗어나 여러 개의 독립적 단위, 즉 객체의 집합으로 프로그램을 표현하려는 것을 말한다.
  • 실세계의 실체를 인식하는 철학적 사고를 프로그래밍에 접목하려는 시도에서 시작한다. 실체는 속성(attribute/property)를 가지고 있고, 이를 통해 실체를 인식하거나 구별할 수 있다.
  • 이처럼, 속성을 통해 여러 개의 값을 하나의 단위로 표현한 자료구조를 객체라고 하고, 객체지향 프로그래밍은 독립적인 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임이다.
  • 객체의 상태 데이터를 프로퍼티, 동작을 메서드라고 한다.

렉시컬 스코프(정적 스코프)

  • 자바스크립트 엔진은 함수를 어디서 호출했는지가 아니라, 함수를 어디에 정의했는지에 따라 상위 스코프를 결정한다. 이를 렉시컬 스코프라고 한다.

클로저

정의

  • 생명 주기가 종료된 외부 함수의 식별자를 참조할 수 있는 함수.
  • 중첩함수가 상위 스코프의 식별자를 참조하고 있고, 중첩함수가 자신을 감싸고 있는 외부 함수보다 더 오래 유지되는 경우.
  • 자신이 정의된 위치에 의해서 결정된 상위 스코프의 렉시컬 환경을 기억해서, 외부 함수가 종료된 이후에도, 상위 스코프의 식별자를 참조할 수 있는 함수.

활용

  • 상태가 의도치 않게 변경하지 않도록 상태를 안전하게 은닉하고, 특정 함수에게만 상태 변경을 허용하기 위해서 사용한다.
  • 즉시실행함수는 한번만 실행되기 때문에, 즉시실행함수로 감싸는 방법 활용.

0개의 댓글