생성자 함수
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);new 키워드로 생성자를 호출하세요. new는 빈 객체를 만들고, this가 그 객체를 가리키도록 하여 함수를 실행한 다음 객체를 반환합니다. 따라서 this.name = name은 john에 이름을 저장합니다. 관례상 생성자 이름은 첫 글자를 대문자로 시작합니다(Person, Car). 이는 생성자가 new와 함께 호출되도록 만들어졌다는 것을 나타냅니다.
new가 없으면 Person("John", 30)은 일반 함수 호출입니다. 객체가 생성되지 않고, this는 전역 객체(또는 엄격 모드에서는 undefined)이며, 호출 결과로 undefined가 반환됩니다.
위 코드를 실행한 후, 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챌린지
- 세 개의 인수를 받는
Book이라는 생성자 함수를 만드세요:
title(문자열)author(문자열)pages(숫자)
함수는 생성된 객체의 속성으로 이것들을 설정해야 합니다.
2. 책에 대한 정보를 반환하는 getSummary라는 메서드를 추가하세요: this.title + " was written by " + this.author + " and has " + this.pages + " pages";
직접 해보기
// 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());이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 JavaScript 컴파일러