Web

객체 지향 복습하기

codingtori 2024. 7. 15. 09:22

객체 : 객체의 상태를 나타내는 '변수' + 객체의 행동을 나타내는 '함수'

객체지향 프로그래밍 : 프로퍼티와 메소드로 이루어진 각 객체들의 상호작용을 중심으로 코드 작성

절차지향 프로그래밍 : 변수와 함수를 가지고 작업의 순서에 맞게 코드를 작성

 

object literal : 객체를 나타내는 문자열

 

객체 생성 방법

●   factory function : 객체를 생성해서 리턴한 함수

function createUser(email, birthdate){
	const user = {
    	email: email,
    	birthdate: birthdate,
    	buy(item){
    		console.log(`${this.email}buys ${item.name}`);
    	},
    };
    return user;
}

const user1 = createUser('chris123@google.com', '1992-03-21');

 

●   constructor function (=생성자 함수)

     ○ new 붙여서 호출해야 함                                ○ 다른 일반 함수와 달리 함수 이름 중 첫번째 알파벳 대문자로 정의

function User(email, birthdate){
	this.email = email;
    this.birthdate = birthdate;
    this.buy = function (item){
    	console.log(`${this.email}buys ${item.name}`);
    };
}

const user1 = new User('chris123@google.com', '1992-03-21');

 

●   class

     : new 붙여서 객체 생성, 프로퍼티는 constructor 안에 메소드는 밖에

class User{
	constructor(email, birthdate){
    	this.email = email;
        this.birthdate = birthdate;
    }
    buy(item){
    	console.log(`${this.email}buys ${item.name}`);
    }
}

 

 

객체 지향

추상화

어떤 구체적인 존재를 원하는 방향으로 간략화해서 나타내는 것

 

캡슐화

객체의 특정 프로퍼티에 직접 접근하지 못하도록 막는 것

setter 메소드 / getter 메소드

 

클로저(closure)

: 자바스크립트에서 어떤 함수와 그 함수가 참조할 수 있는 값들로 이루어진 환경을 하나로 묶은 것. 함수가 정의될 당시에 참조할 수 있었던 변수들을 계속 참조할 수 있는 상태의 함수

 

상속

하나의 객체가 다른 객체의 프로퍼티나 메소드 물려받을 경우

* 자식 클래스로 객체를 만들려고 할 때는 자식 클래스의 생성자 함수 안에서 super 을 호출해서 부모클래스의 생성자 함수를 먼저 호출해주어야 함

 

다형성

- 오버라이딩 : 부모클래스의 내용을 새로운 내용으로 덮어씀

* 자식 클래스로 만든 객체는 부모 클래스로 만든 객체로 인정

 

+)

instance of

: 변수가 어떤 클래스로 만든 객체인지 확인

 

static

: 클래스에 직접적으로 딸려있는 프로퍼티와 메소드 ; 객체가 아닌 클래스 자체로 접근