728x90
반응형
ES6 Classes
(심층)자바스크립트2024. 9. 4. 04:21ES6 Classes

ES6에 나온 Class를 사용하여 더 쉽게 OOP를 구현할 수 있다.이것은 문법을 OOP 방식을 사용하지만 내부에서 prototype을 사용하여 작동한다.  생성자 함수로 객체를 만들었을 때는생성자 함수에 넣어둔 메소드가 인스턴스 객체 자체에 포함되어 있었지만,Class의 경우 Class 안에 넣어둔 메소드가 바로 프로토타입에 들어가게 된다. class Person { constructor(name, email, birthday) { this.name = name; this.email = email; this.birthday = new Date(birthday); } introduce() { return `Hello my name is ${this.name}`; }}cons..

javascript prototype
(심층)자바스크립트2024. 9. 4. 03:43javascript prototype

let user = { name: "John", age : 45}console.log(user.name);// Johnconsole.log(user.hasOwnProperty("email"));// false - hasOwnProperty는 어디서 왔나요? 현재 user 객체 변수에는 두 개의 속성(name, age)만 있는데hasOwnProperty는 어디서 나온 것일까?(객체 내부에는 메소드가 없다.) user 객체 변수를 콘솔로 찍어보면, [[Prototype]] : Object라는 것을 확인할 수 있다.아래를 내리다보면, hasOwnProperty라는 메소드를 찾을 수 있다.그리고 우리는 이것을 가져다 사용할 수 있다.=> 모든 객체는 global Object prototype을 가지며, 이것..

다시 시작하는 자바스크립트 - 클래스 퀴즈2
(심층)자바스크립트2023. 3. 15. 00:54다시 시작하는 자바스크립트 - 클래스 퀴즈2

헷갈리는 것들만 따로 정리할 예정. deep dive 책을 함께 공부함. - 퀴즈 2 1. 정직원과 파트타임직원을 나타낼 수 있는 클래스를 만들어 보자 2. 직원들의 정보 : 이름, 부서이름, 한 달 근무 시간 3. 매달 직원들의 정보를 이용해서 한 달 월급을 계산할 수 있다 4. 정직원은 시간당 10000원 5. 파트타임 직원은 시간당 8000원 [ 기존에 작성한 코드 ] class Employee { constructor(name, department, workTime, pay) { this.name = name; this.department = department; this.workTime = workTime; this.pay = pay; } culculator = () => { return thi..

다시 시작하는 자바스크립트 - 클래스 퀴즈1
(심층)자바스크립트2023. 3. 14. 23:17다시 시작하는 자바스크립트 - 클래스 퀴즈1

헷갈리는 것들만 따로 정리할 예정. deep dive 책을 함께 공부함. - 퀴즈 1 1. 카운터 만들기 2. 0 이상의 값으로 초기화 한 뒤 하나씩 숫자를 증가할 수 있는 카운터를 만들기 3. Counter 클래스 만들기 class Counter { #value; // 외부에서 값을 바꾸려고 접근할 수 없도록 #을 이용해서 설정.(필드에) constructor(startNumber) { // 무언가가 NaN인지 판별하는 방법 => isNaN (true 또는 false를 출력) if (isNaN(startNumber) || startNumber < 0) { this.#value = 0; } else { this.#value = startNumber; // 그 외에는 넣은 값에서 바로 카운트를 시작할 수 ..

다시 시작하는 자바스크립트 - 클래스
(심층)자바스크립트2023. 3. 14. 01:51다시 시작하는 자바스크립트 - 클래스

헷갈리는 것들만 따로 정리할 예정. deep dive 책을 함께 공부함. 8. 클래스 ES6에 도입. Class : 객체를 생성할 수 있는 템플릿(양식, 틀), 객체지향 프로그래밍. 객체끼리 서로 호환 가능. 공통적인 구조를 가진 객체가 있다면 생성자 함수를 이용하여 손쉽게 객체를 만들 수 있음. 생성자 함수를 템플릿(양식)처럼 사용하여 객체를 손쉽게 만들어낼 수 있는 이유는, 자바스크립트가 프로토타입(Prototype) 객체지향 프로그래밍을 지원해주기 때문. 대부분의 객체지향 프로그래밍 언어에서는 프로토타입이 아닌 클래스(Class)를 기반으로 한 객체지향 프로그래밍을 가능하게 함. [ 객체지향 프로그래밍 언어 ] 자바스크립트 대부분(Java, C#, Kotlin 등...) 프로토타입(Prototype..

728x90
반응형
image