[JS] 프로토타입 체인
·
개념정리/JavaScript
JavaScript는 흔히 프로토타입 기반 언어(prototype-based language)라 불립니다. — 모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미입니다. 프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지입니다. 이를 프로토타입 체인(prototype chain)이라 부르며 한 객체에 정의된 메소드와 속성을 다른 객체에서 사용할 수 있도록합니다. 프로토타입 체인이란? 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있습니다. JavaScript에서는 객체 인스턴스와 프로토타입 간에 연결(많은..
[JS] 프로토타입과 클래스
·
개념정리/JavaScript
💡 프로토타입 JavaScript에서 상속을 위해 사용하는 매커니즘 클래스 JavaScript에는 class가 없기 때문에 생성자 함수를 사용해서 그 역할을 대신합니다. class Human { constructor(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log(this.name + " said hello"); } } } new 키워드를 이용해 Human생성자 함수를 실행하고 전달 인자로 name과 age를 줍니다. let steve = new Human('steve', 30); steve.sayHello(); // "steve said hello" let kim = new Human("kim"..
객체 지향 프로그래밍_OOP
·
개념정리/JavaScript
💡 객체 지향 프로그래밍(object-oriented programming) 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식 객체란? 하나의 역할을 수행하는 '데이터(속성)와 기능(메서드)'의 묶음 객체 지향 프로그래밍의 탄생 초기 프로그래밍 방식은 절차적 프로그래밍 방식이었다. 입력을 받아 명시된 순서대로 처리한 다음, 그 결과를 출력하는 것으로 명령어의 모음일 뿐이었다. 이 방식은 프로그램이 조금만 복잡해지면 순서도로 나타내는것이 불가능할 정도로 꼬인 “스파게티 코드”를 만들게 된다. 객체 지향 프로그래밍은 이것을 상향식(Bottom-up) 해결법을 통해 해결한다. 작은 문제들을 해결할 수..
[JS] 클래스와 인스턴스
·
개념정리/JavaScript
💡 객체 지향 프로그래밍 하나의 모델이 되는 청사진(blueprint)을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴. 청사진은 클래스(class)라고 부르고, 청사진을 바탕으로 만든 객체를 인스턴스 객체(instance object) 줄여서 인스턴스 라고 부른다. 클래스를 만드는 방법 ES5이전 문법 function Car(brand, name, color) { this.brand = brand; this.name = name; this.color = color; } // 속성 Car.prototype.refuel = function(){ return "연료 공급"; } // 메서드 Car.prototype.drive = function(){ return "운전 시작"; } // 메..