전체 글 (104) 썸네일형 리스트형 <모던 자바스크립트 Deep Dive> 19장 프로토타입 요약 19. 프로토타입 1) 객체지향 프로그래밍 - 자바스크립트는 거의 모든 것이 객체로 이루어진 프로토타입 기반의 객체 기반의 프로그래밍 언어 - 객체지향 프로그래밍은 객체의 집합으로 프로그램을 표현하는 것 - 실체 = 객체, 속성 = 객체가 갖는 특징 - 실체가 가진 여러 속성 중 필요한 속성만을 나타내는 것이 추상화 - 객체는 다시 객체의 상태를 나타내는 데이터인 프로퍼티와, 동작을 나타내는 메서드로 표현됨 - 객체 : 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조 2) 상속과 프로토타입 - 상속 : 어떤 객체의 프로퍼티나 메서드를 다른 객체가 상속받아 그대로 사용하는 것 - 상속이 갖는 의의는 기존의 코드를 재사용함으로써 중복을 줄인다는 것임 - 자바스크립트는 프로토타입을 기반으로.. <모던 자바스크립트 Deep Dive> 17~18장 생성자 함수에 의한 객체 생성, 함수와 일급 객체 요약 17. 생성자 함수에 의한 객체 생성 1) Object 생성자 함수 - new 연산자 + Object();으로 빈 객체(인스턴스) 생성 - Object 이외에도 String, Boolean, Function, Array, Date, RegExp, Promise 등 빌트인 생성자 함수 제공 2) 생성자 함수 1. 객체 리터럴에 의한 객체 생성 방식의 문제점 - 하나의 객체만 생성이 가능하여 비효율적(메서드가 동일한데 매 번 같은 객체 생성해야 함 2. 생성자 함수에 의한 객체 생성 방식의 단점 - 프로퍼티 구조가 동일한 객체를 여러개 생성 가능 - 사용자 정의 가능(new 연산자만 붙이면 됨) *this : 자기참조변수로, 함수 호출 방식에 따라 this가 가리키는 값이 달라짐 함수 호출 방식 this가 .. <모던 자바스크립트 Deep Dive> 16장 프로퍼티 어트리뷰트 요약 16. 프로퍼티 어트리뷰트 1) 내부 슬롯과 내부 메서드 - 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript에서 사양에서 사용하는 의사 프로퍼티와 의사 메서드를 내부 슬롯, 내부 메서드라 칭함('[[..]]'로 감싼 이름들) - 기본적으로 직접 접근 불가 - 내부 슬롯 중 일부는 간접적으로 접근이 가능 ex. [[Prototype]]은 __proto__로 접근 가능 const o = {}; o.__proto__ // Object.prototype 2) 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 - 프로퍼티 생성 시 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의 - 프로퍼티 어트리뷰트란 프로퍼티 값, 값 갱신 가능여부, 열거 가능여부, 재정의 가능여부 나타냄.. <모던 자바스크립트 Deep Dive> 15장 let, const 키워드와 블록 레벨 스코프 요약 (2) 3) const 키워드 - 상수 선언을 위해 사용 - let 키워드와 그 특징이 대부분 동일 - let 키워드와 구별되는 부분 1. 선언과 초기화 - const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화 필요 // 변수 선언과 동시에 초기화 const foo = 1; // 초기화는 이루어지지 않음 -> 문법 에러 const foo2; // SyntaxError: Missing initializer in const declaration - let 키워드와 마찬가지로 블록 레벨 스코프를 가지며, 변수 호이스팅이 발생하지 않는 것처럼 동작 2. 재할당 금지 - var, let 키워드와 달리 const 키워드로 선언한 변수는 재할당 금지됨 const foo = 1; foo = 2; // TypeErro.. <모던 자바스크립트 Deep Dive> 15장 let, const 키워드와 블록 레벨 스코프 요약 (1) 15. let, const 키워드와 블록 레벨 스코프 1) var 키워드로 선언한 변수의 문제점 1. 변수 중복 선언 허용 - var 키워드로 선언한 변수는 같은 스코프 내에서 중복 선언이 가능 - 초기화문(변수 선언과 도시에 초기값을 할당하는 문) 유무에 따라 다르게 동작하는데, 초기화문이 있으면 자바스크립트 엔진이 var 키워드가 없는 것처럼 동작하며 초기화문이 없으면 자바스크립트 엔진이 변수 선언문을 무시함(에러 발생X) - 변수 중복 선언 허용의 문제 : 의도와 달리 먼저 선언된 변수 값이 변경되는 부작용 발생 var x = 1; var y = 1; // 초기화문 있음 : var 키워드가 없는 것처럼 동작 var x = 100; // 초기화문 없음 : 무시됨 var y; console.log(x).. 이전 1 2 3 4 5 ··· 21 다음 목록 더보기