모던자바스크립트 스터디 10일차이다.
23장 실행 컨텍스트
24장 클로저
오늘은 위 단원들을 공부하고 모르는것을 정리했다.
# 궁금증
왜 자바스크립트는 private, protected 같은 접근 제한자를 공식적으로 지원하지 않는것인가?
# 이유
- JavaScript는 프로토타입 기반 프로그래밍 언어(아마도 프로토타입 기반 스크립팅 언어가 더 정확한 정의일 것)
- 프로토 타입 기반 프로그래밍 언어는 클래스가 없는 객체 지향 프로그래밍(js는 ECMA 262 Edition 4 이후 class 지원)
- 객체지향 언어는 분류와 관계에 초점을 맞추도록 권장하지만, 프로토타입 기반 언어는 동작에 먼저 초점을 맞추고 나중에 분류
- 객체 프로그래밍 언어는 객체, 메서드, 속성, 클래스, 캡슐화, 집계, 상속 및 다형성이 있어야 함. (js도 이 모든 사항을 구현할 수 있지만 JavaScript 공식적으로 지원하는건 아니거나 추후 지원함)
요약하자면
지금이야 JS는 객체지향 언어(OOP)라고 불리지만, 초창기에는 비OOP 언어였기 때문에
그러한 관습으로 인해서 JAVA 같이 처음부터 OOP를 지향했던 언어와는 차이가 있을 수 밖에 없음
그래서 private 같은걸 완전히 지원할 수 없는 이유이기도 함
# 참고
Is JS object-oriented?
https://stackoverflow.com/questions/107464/is-javascript-object-oriented
js 에 관한 여러 설명 모음
'JaveScript > JaveScript' 카테고리의 다른 글
모던자바스크립트 26장 스터디 (1) | 2023.11.26 |
---|---|
모던자바스크립트 25장 스터디 (0) | 2023.11.25 |
모던자바스크립트 21, 22장 스터디 (2) | 2023.11.23 |
모던자바스크립트 19, 20장 스터디 (0) | 2023.11.22 |
모던자바스크립트 17, 18장 스터디 (0) | 2023.11.21 |