본문 바로가기
공부/JavaScript

객체, 객체 지향 프로그래밍

by 아찌방 2024. 11. 25.

 

자바스크립트에는 여덟 가지 기본 자료형이 있습니다.

  • 숫자형 – 정수, 부동 소수점 숫자 등의 숫자를 나타낼 때 사용합니다. 정수의 한계는 ±253 입니다.
  • bigint – 길이 제약 없이 정수를 나타낼 수 있습니다.
  • 문자형 – 빈 문자열이나 글자들로 이뤄진 문자열을 나타낼 때 사용합니다. 단일 문자를 나타내는 별도의 자료형은 없습니다.
  • 불린형  true, false를 나타낼 때 사용합니다.
  • null  null 값만을 위한 독립 자료형입니다. null은 알 수 없는 값을 나타냅니다.
  • undefined  undefined 값만을 위한 독립 자료형입니다. undefined는 할당되지 않은 값을 나타냅니다.
  • 객체형 – 복잡한 데이터 구조를 표현할 때 사용합니다.
  • 심볼형 – 객체의 고유 식별자를 만들 때 사용합니다.

이 중 객체를 제외한 7가지 자료형은 오직 하나의 데이터(문자열, 숫자 등)만 담을 수 있어 "원시형(primitive type)"이라고 부릅니다.

 

그런데 객체는 원시형과 달리 다양한 데이터를 담을 수 있습니다. 키로 구분된 데이터 집합이나 복잡한 개체(Entity)를 저장 할 수 있습니다.

 

객체는 중괄호({})를 이용해 만들고, 이 안에는 "키(Key) : 값(Value)"쌍으로 구성프로퍼티(Property)를 여러개를 넣을 수 있습니다. 키, 값에는 모든 자료형이 허용됩니다. 프로퍼티 키는 "프로퍼티 이름"이라고도 부릅니다.

 

빈 객체를 만드는 방법 2가지

let user = new Object(); // '객체 생성자' 문법
let user = {};  // '객체 리터럴' 문법

 

객체를 선언할 때는 주로 객체 리터널 방법을 많이 사용합니다.

 

예시

let user = {     // 객체
  name: "John",  // 키: "name",  값: "John"
  age: 30        // 키: "age", 값: 30
};

 

프로퍼티 값 얻기

// 프로퍼티 값 얻기
alert( user.name ); // John
alert( user.age ); // 30

 

프로퍼티 값 추가

user.isAdmin = true;

 

프로퍼티 값 삭제

delete user.age;

 

 


객체 지향 프로그래밍이란?

객체 지향 프로그래밍(OOP)은 프로그램을 객체(object)들로 구성하여 설계하고 개발하는 방법입니다. 주요 개념은 다음과 같습니다:

  • 객체(Object): 데이터(속성)와 이를 조작하는 함수(메서드)의 집합.
  • 클래스(Class): 객체를 생성하기 위한 청사진.
  • 상속(Inheritance): 하나의 클래스가 다른 클래스의 속성과 메서드를 재사용.
  • 다형성(Polymorphism): 동일한 메서드가 다양한 객체에서 다르게 동작.
  • 캡슐화(Encapsulation): 객체의 내부 상태를 숨기고, 메서드를 통해 접근.

자바스크립트에서의 객체 지향 프로그래밍

클래스 사용 예시

class Animal {
    constructor(name) {
        this.name = name;
    }
    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Dog extends Animal {
    constructor(name) {
        super(name);
    }
    speak() {
        console.log(`${this.name} barks.`);
    }
}

let dog = new Dog('Rex');
dog.speak(); // Rex barks.

 

프로토타입 사용 예시

function Animal(name) {
    this.name = name;
}

Animal.prototype.speak = function() {
    console.log(this.name + ' makes a noise.');
};

function Dog(name) {
    Animal.call(this, name);
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

Dog.prototype.speak = function() {
    console.log(this.name + ' barks.');
};

let dog = new Dog('Rex');
dog.speak(); // Rex barks.
728x90

'공부 > JavaScript' 카테고리의 다른 글

자바스크립트가 뭘까요?  (0) 2024.11.23
자바스크립트의 동작 원리 - Heap, Stack, Queue  (0) 2024.11.23