본문 바로가기
반응형

개발서적28

프로토타입 (모던 자바스크립트 Deep Dive) 클래스, 상속, 캡슐화를 위한 키워드가 없어서 객체 지향 언어가 아니다? (public, private, protected 등) 프로토타입 기반의 객체 지향 프로그래밍이다! 19.1 객체지향 프로그래밍 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 클래스, 상속, 캡슐화를 위한 키워드가 없어서 객체 지향 언어가 아니다? (public, private, protected 등) 프로토타입 기반의 객체 지향 프로그래밍이다! 19.1 객체지향 프로그래밍 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 어떤 사물이나 개념을 인식하는 철학적 사고를 프로그래밍에 접목하여 그 실체는 속성을 가지고 있다고 말한다. 추상화? 다양한 실체의 속성 중 필요한 것만 표현하는 것 객체 속성을 통해 여러 개의 .. 2024. 4. 16.
함수와 일급 객체 (모던 자바스크립트 Deep Dive) 18.1 일급 객체 일급 객체의 조건 무명의 리터럴로 생성할 수 있다. 런타임에 생성이 가능하다. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 함수형 프로그래밍을 가능하게 하는 자바스크립트의 장점 18.2 함수 객체의 프로퍼티 함수도 프로퍼티를 가진다. console.dir()로 내부를 보면? function square(number) { return number * number; } console.dir(square); // arguments: null // caller: null // length: 1 // name: "square" // prototype: {constructor: f} // [[FunctionLocat.. 2024. 4. 16.
생성자 함수에 의한 객체 생성 (모던 자바스크립트 Deep Dive) 객체 리터럴에 의한 방식이 아닌 생성자 함수로 객체를 생성해보자! 17.1 Object 생성자 함수 const person = new Object(); // 빈 객체 반환 필요한 프로퍼티나 함수를 추가해서 사용한다. 생성자 함수(new)를 활용해 생성한 객체를 객체 인스턴스라고 부른다. 17.2 생성자 함수 17.2.1 객체 리터럴에 의한 객체 생성 방식의 문제점 프로퍼티 구조가 동일하더라도 매번 같은 프로퍼티와 메서드를 가진 객체를 생성하는 코드를 기술해야한다. 객체 구조 재사용에 불편하다. 17.2.2 생성자 함수에 의한 객체 생성 방식의 장점 객체 인스턴스를 생성하기 때문에 같은 구조의 객체를 몇 개든지 생성할 수 있다. 붕어빵 틀을 만드는 것이다. new 연산자 없이 생성자 함수를 호출하면 일반 .. 2024. 4. 16.
프로퍼티 어트리뷰트 (모던 자바스크립트 Deep Dive) 16.1 내부 슬롯과 내부 메서드 ECMAscript 사양에서 사용하는 의사 프로퍼티와 의사 메서드 직접 접근은 불가 객체의 경우 __proto__ 를 통해 프로토타입에 간접 접근 가능 const o = {}; o.[[Prototype]] // SyntaxError o.__proto__ // Object.prototype console.log(o); // {} 하위 항목 [[Prototype]] 확인 가능 16.2 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 프로퍼티 생성시 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. 프로퍼티의 상태를 나타낸다. 프로퍼티의 값, 값 갱신 가능 여부, 열거 가능 여부, 재정의 여부 엔진이 관리하는 내부 상태 값인 내부 슬롯이다. [[Value]], [[Writable.. 2024. 4. 16.
728x90
반응형