Menu
Coddy logo textTech

생성자 함수

Coddy JavaScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 56개 중 4번째.

생성자 함수는 동일한 구조와 동작을 가진 여러 객체를 생성할 수 있게 해주는 JavaScript의 특별한 함수입니다.

Person을 위한 생성자 함수를 정의합니다:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

생성자를 사용하여 새로운 Person 객체를 생성합니다:

const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);

위 코드를 실행한 후, john은 다음과 같은 속성을 가진 객체입니다:

// john 객체는 다음을 포함합니다:
{
  name: "John",
  age: 30,
  greet: function() { return "Hello, my name is John"; }
}

속성에 접근하고 메서드를 호출합니다:

console.log(john.name); // 출력: John
console.log(john.greet()); // 출력: Hello, my name is John
challenge icon

챌린지

  1. 세 개의 인수를 받는 Book이라는 이름의 생성자 함수를 만드세요:
  • title (문자열)
  • author (문자열)
  • pages (숫자)

이 함수는 생성된 객체의 속성으로 이 값들을 설정해야 합니다. 

    2. 책에 대한 정보를 포함하는 문자열을 반환하는 getSummary라는 메서드를 추가하세요: this.title + " was written by " + this.author + " and has " + this.pages + " pages";

치트 시트

생성자 함수는 동일한 구조를 가진 여러 객체를 생성합니다. new 키워드를 사용하여 인스턴스를 생성하세요:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

const john = new Person("John", 30);
console.log(john.name); // Outputs: John
console.log(john.greet()); // Outputs: Hello, my name is John

직접 해보기

// TODO: 세 개의 인자(title, author, pages)를 받는 Book이라는 이름의 생성자 함수를 만드세요.


// TODO: 이 인자들을 생성된 객체의 속성으로 설정하세요.


// TODO: 책에 대한 정보를 담은 문자열을 반환하는 getSummary라는 메서드를 추가하세요.
// 예: Harry Potter was written by Rowling and has 500 pages


// 아래 코드를 수정하지 마세요.
const inputTitle = inp[0];          // 첫 번째 줄: 책 제목
const inputAuthor = inp[1];         // 두 번째 줄: 저자  
const inputPages = parseInt(inp[2]);// 세 번째 줄: 페이지 수

const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨