본문 바로가기
컴퓨터과학과

[Node.js] 클래스 코딩 설명

by 공부하는노년 2024. 4. 12.
반응형

클래스 코딩 설명

다음 클래스 파일의 코딩 내용을 자세하게 알아봅니다.

클래스 Page.mjs 파일

14번째 줄 `this.pages = []`

14번째 줄의 this.pages = []; 코드는 Notebook 클래스의 생성자 함수 내부에 있습니다. 이 줄은 Notebook 객체가 생성될 때마다 pages라는 새로운 속성을 만들고, 이를 빈 배열로 초기화합니다. 배열은 자바스크립트에서 여러 값들의 리스트를 저장할 때 사용되며, 이 경우에는 Page 객체들의 리스트를 저장하는 데 사용됩니다.

 

여기서 this 키워드는 현재 객체의 인스턴스를 가리키며, this.pages는 그 인스턴스에 pages라는 새 속성을 추가합니다. 즉, 각각의 Notebook 인스턴스는 자체적으로 독립된 pages 배열을 가지며, 이 배열은 해당 노트북에 속한 페이지들을 관리하는 데 사용됩니다.

 

객체 지향 프로그래밍에서 생성자는 객체가 생성될 때 초기 상태를 설정하는 역할을 합니다. this.pages = []; 코드는 Notebook 객체가 처음 생성될 때 아무런 페이지가 없는 상태, 즉 빈 노트북으로 시작한다는 것을 의미합니다. 그 후에 addPage(text) 메서드를 호출할 때마다 새로운 Page 객체가 생성되어 this.pages 배열에 추가됩니다.

18번째 줄과 19번째 줄 내용

Notebook 클래스의 addPage 메서드에 있는 18번째 줄과 19번째 줄의 코드입니다.

addPage(text) {
    var page = new Page(text);
    this.pages.push(page);
}

18번째 줄: var page = new Page(text);

  1. 변수 선언 (var):
    • var는 변수를 선언할 때 사용되는 키워드입니다. 현대의 자바스크립트에서는 블록 범위를 가지는 let 또는 constvar보다 선호되지만, var는 여전히 사용되고 있으며 함수 범위를 가집니다.
  2. Page 클래스의 인스턴스 생성 (new Page(text)):
    • new는 클래스의 인스턴스를 생성하는 키워드입니다. 여기서는 새로운 Page 객체를 생성합니다.
    • Page(text)Page 클래스의 생성자를 호출하며, addPage 메서드로 받은 text 인자를 전달합니다. 이 인자는 새 페이지의 내용이나 텍스트가 됩니다.
  3. 할당:
    • 새로 생성된 Page 객체가 로컬 변수 page에 할당됩니다. 이 변수는 새로 생성된 Page 객체에 대한 참조를 가지며, addPage 메서드 내에서 사용될 수 있습니다.

19번째 줄: this.pages.push(page);

  1. pages 배열 접근 (this.pages):
    • thisaddPage 메서드가 호출되는 Notebook 클래스의 인스턴스를 가리킵니다.
    • this.pagesNotebook 인스턴스의 pages 속성에 접근합니다. 이 배열은 해당 노트북에 속한 모든 Page 객체들을 담고 있습니다.
  2. 배열 메서드 push:
    • .push()는 자바스크립트에서 배열의 끝에 요소를 추가하는 메서드입니다.
    • 새로 생성된 Page 객체 pagepush 메서드에 전달되며, 이는 pagethis.pages 배열에 추가합니다.

정리

이 코드는 주어진 텍스트를 가진 새 페이지를 노트북에 추가하는 역할을 합니다. addPage가 호출될 때마다 새로운 Page 인스턴스가 생성되어 pages 배열에 추가되며, 이를 통해 Notebook의 페이지 컬렉션이 확장됩니다.

댓글