programming study/JavaScript (186) 썸네일형 리스트형 19장 프로토 타입(8) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.10 instanceof 연산자 이항 연산자 좌변 객체, 우변 생성자 함수를 가리키는 식별자를 피연사자로 받음 우변의 생성자 함수의 prototype에 바인딩된 객체가 좌변 객체의 프로토타입 체인 상에 존재하면 true로 평가 function Cat(name) { this.name = name; } const siru = new Cat('siru'); console.log(siru instanceof Cat); // true console.log(siru instanceof Object); // true 19.11 직접 상속 19.11.1 Object.create에 의한 직접 상속.. 19장 프로토 타입(7) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.9 프로토타입의 교체 프로토타입은 임의의 다른 객체로 변경 가능 부모 객체인 프로토타입을 동적으로 변경 가능 객체간 상속 관계 동적 변경 생성자함수, 인스턴스에 의해 교체 가능 직접 교체보다는 직접 상속이 더 직관적이고 간편 19.9.1 생성자 함수에 의한 프로토타입의 교체 생성자 함수 정의부에서 prototype 프로퍼티를 통해 프로토타입을 교체 가능 교체시, constructor 프로퍼티와 생성자 함수 간의 연결이 파괴되므로 constructor 프로퍼티도 추가할 것 const Cat = (function() { function Cat(name) { this.name = name; }.. 19장 프로토 타입(6) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.7 프로토타입 체인 프로토타입 체인: 자바스크립트는 객체의 프로퍼티, 메서드에 접근 시 해당 객체에 없을 경우 [[Prototype]] 내부 슬롯의 참조를 따라서 부모 역할을 하는 프로토타입의 프로퍼티를 순차적으로 검색 객체지향 프로그래밍의 상속을 구현하는 메커니즘 Object.prototype: 프로토타입 체인의 종점 스코프 체인과 프로토타입 체인은 서로 협력하여 식별자, 프로토퍼티, 메서드를 검색하는데 사용 19.8 오버라이딩과 프로퍼티 섀도잉 섀도잉: 인스턴스 메서드에 의해 프로토타입 메서드를 오버라이딩하여, 상속 관계에 의해 메서드가 가려지는 것 오버라이딩: 상위 클래스가 가지고 .. 19장 프로토 타입(5) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.6 객체 생성 방식과 프로토타입의 결정 각 객체 생성 방식의 차이는 있으나, 공통적으로 추상 연산 OrdinaryObjectCeate에 의해 생성됨 자신이 생성할 객체의 프로토타입을 인수로 전달 받음 추가할 프로퍼티 목록을 옵션으로 전달 가능 빈 객체 생성 -> 프로퍼티를 객체에 추가 프로토타입은 OrdinaryObjectCreate에 전달되는 인수에 의해 결정 OrdinaryObjectCreate가 전달 받는 인수 객체 리터럴 Object.prototype Object 생성자 함수 Object.prototype 생성자 함수 생성자 함수의 prototype에 바인딩되어 있는 객체 19장 프로토 타입(4) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.5 프로토타입의 생성 시점 프로토타입은 생성자 함수가 생성되는 시점에 더불어 생성 프로토타입과 생성자 함수는 쌍으로 존재 19.5.1 사용자 정의 생성자 함수와 프로토타입 생성 시점 내부 메서드 [[Construct]]를 가지는 함수 객체는 new 연산자와 함께 생성자 함수로서 호출 가능 constructor는 함수 정의가 평가되어 함수 객체를 생성하는 시점에 프로토타입도 더불어 생성 함수 호이스팅이 일어나서 함수가 평가, 생성되어 함수 객체가 되었을 때 프로토타입도 더불어 생성 19.5.2 빌트인 생성자 함수와 프로토타입 생성 시점 전역 객체가 생성되는 시점에 생성 19장 프로토 타입(3) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.3 프로토타입 객체 19.3.3 프로토타입의 constructor 프로퍼티와 생성자 함수 prototype 프로퍼티로 자신을 참조하고 있는 생성자 함수를 가리킴 생성자 함수가 생성될 때 연결이 이뤄짐 생성된 객체는 constructor 프로퍼티를 상속받아 사용 가능 19.4 리터럴 표기법에 의해 생성된 객체의 생성자 함수와 프로토타입 리터럴 표기법으로 생성된 객체의 경우 프로토타입의 constructor 프로퍼티가 반드시 생성자 함수라고 단정할 수 없음 객체 리터럴의 경우 추상 연산 OrdinaryObjectCreate를 호출하여 빈 객체 생성 Object.prototype을 프로토 타입.. 19장 프로토 타입(2) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.3 프로토타입 객체 객체간 상속을 구현하기 위해 사용 어떤 객체의 상위(부모) 역할을 하는 객체 공유 프로퍼티, 메서드를 가지고 있음 [[Prototype]] 모든 객체가 가지는 내부 슬롯 프로토타입의 참조 객체 생성 방식에 따라 프로토 타입이 결정되고 내부 슬롯에 저장 됨 모든 객체는 하나의 프로토타입을 가짐 19.3.1 접근자 프로퍼티 __proto__ 접근자 프로퍼티를 통해 [[Prototype]] 내부 슬롯에 간접적으로 접근 가능 접근자 프로퍼티 : 자체적인 값을 갖지 않고 다른 데이터 프로퍼티 값을 읽고 저장하는 데 사용하는 프로퍼티 getter/setter 접근 시에는 gett.. 19장 프로토 타입(1) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 19.0 프로토 타입이란? 19.0.1 멀티 패러다임 언어 여러 패러다임을 지원하는 언어 자바스크립트는 멀티 패러다임 언어 명령형, 함수형, 프로토타입 기반의 객체지향 프로그래밍을 지원 19.0.1 클래스 자바스크립트 ES6에서 도입 클래스 또한 함수 프로토타입 기반 패턴의 문법적 설탕 생성자 함수보다 엄격 클래스만의 기능이 있음 19.1 객체지향 프로그래밍 Object Oriented Programming 객체의 집합으로 프로그램을 표현 실세계의 실체를 프로그래밍에 접목 추상화 : 프로그램에 필요한 속성만 간추려 내어 표현하는 것 객체 : 여러개의 값을 하나의 단위로 구성한 복합적인 자료구조.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 24 다음