본문 바로가기

개인공부/모던 자바스크립트 Deep Dive52

19장 프로토타입(2) * 아래 내용은 이웅모 저자님의 모던 자바스크립트 Deep Dive 책(위키북스)을 정리한 내용입니다. 저작권에 문제가 된다면 삭제하도록 하겠습니다. 19.5 프로토타입의 생성 시점 프로토타입은 생성자 함수가 생성되는 시점에 더불어 생성된다. 19.5.1 사용자 정의 생성자 함수와 프로토타입 생성 시점 생성자 함수로서 호출할 수 있는 constructor는 함수 정의가 평가되어 함수 객체를 생성하는 시점에 프로토타입도 더불어 생성된다. non-constructor는 프로토타입이 생성되지 않는다. 함수 선언문으로 정의된 생성자 함수는 호이스팅되어 어떤 코드보다 먼저 평가되어 함수 객체가 된다. 이때 프로토타입도 더불어 생성된다. 생성된 프로토타입은 오직 constructor 프로퍼티만 갖는 객체다. 생성된.. 2023. 1. 3.
19장 프로토타입(1) * 아래 내용은 이웅모 저자님의 모던 자바스크립트 Deep Dive 책(위키북스)을 정리한 내용입니다. 저작권에 문제가 된다면 삭제하도록 하겠습니다. Javascript는 객체 기반의 프로그래밍 언어이며, Javascript를 이루고 있는 거의 '모든 것'이 객체다. 19.1 객체 지향 프로그래밍 객체 지향 프로그래밍 이란, 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임을 말한다. 복잡한 것 속에서 필요한 속성들만 골라내어 표현하는 것을 '추상화' 라고 한다. 추상화를 통해 필요한 속성 정보들을 하나의 객체에 담는다. // 이름과 주소 속성을 갖는 객체 const person = { name: 'Lee', address: 'Seoul' }; console.log(person); // {name.. 2023. 1. 2.
18장 함수와 일급 객체 * 아래 내용은 이웅모 저자님의 모던 자바스크립트 Deep Dive 책(위키북스)을 정리한 내용입니다. 저작권에 문제가 된다면 삭제하도록 하겠습니다. 18.1 일급 객체 다음 조건을 만족하면 일급 객체라고 한다. ⓵ 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다. ⓶ 변수나 자료구조(객체,배열 등)에 저장할 수 있다. ⓷ 함수의 매개변수에 전달할 수 있다. ⓸ 함수의 반환값으로 사용할 수 있다. Javascript 함수는 위의 조건을 모두 만족하므로 일급 객체다. 함수가 일급 객체라는 것은 함수를 객체와 동일하게 사용할 수 있다는 뜻이다. 함수도 값이기 때문에 리터럴로 정의할 수 있으며, 매개변수로 전달 할 수 있고, 반환값으로 사용할 수도 있다. 이는 함수형 프로그래밍을 가능케 하는 .. 2023. 1. 1.
17장 생성자 함수에 의한 객체 생성 * 아래 내용은 이웅모 저자님의 모던 자바스크립트 Deep Dive 책(위키북스)을 정리한 내용입니다. 저작권에 문제가 된다면 삭제하도록 하겠습니다. 17.1 Object 생성자 함수 생성자 함수(Constructor)란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말한다. 생성자 함수에 의해 생성된 객체를 인스턴스(instance)라고 한다. // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = 'Lee'; person.sayHello = function () { console.log('Hi! My name is ' + this.name); }; console.log(person); // {name: "Lee", say.. 2023. 1. 1.
16장 프로퍼티 어트리뷰트 * 아래 내용은 이웅모 저자님의 모던 자바스크립트 Deep Dive 책(위키북스)을 정리한 내용입니다. 저작권에 문제가 된다면 삭제하도록 하겠습니다. 16.1 내부 슬롯과 내장 매서드 내부 슬롯과 내부 매서드는 JS 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티(pseudo property)와 의사 매서드(pseudo method)이다. JS엔진의 내부 로직이므로 원칙적으로 JS는 내부슬롯과 내부 매서드를 직접 호출할 수 없다. 다만, __proto__ 키워드를 이용해 간접적으로 접근할 수 있다. 16.2 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 JS엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. 프로.. 2022. 12. 31.
15장 let, const키워드와 블록레벨 스코프 * 아래 내용은 이웅모 저자님의 모던 자바스크립트 Deep Dive 책(위키북스)을 정리한 내용입니다. 저작권에 문제가 된다면 삭제하도록 하겠습니다. 15.1 var 키워드로 선언한 변수의 문제점 ⓵ 변수 중복 선언 허용 var x = 1; var y = 1; // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. // 초기화문이 있는 변수 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. var x = 100; // 초기화문이 없는 변수 선언문은 무시된다. var y; console.log(x); // 100 console.log(y); // 1 ⓶ 함수 레벨 스코프 var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다. 함수 .. 2022. 12. 28.