개발/JavaScript

[JavaScript] 코어 자바스크립트 - 8. 클래스

알파카털파카 2023. 6. 18. 17:33

1. 클래스에서 Object.create에 대해서 설명해 주세요.

Object.create()는 새로운 객체를 생성하는 메소드

이 메소드는 인자로 전달된 객체를 상속하기 때문에, 기존 객체의 프로퍼티와 메소드를 그대로 사용할 수 있음 

 

2. Object.create 함수는 클래스와 어떤 관계가 있을까요?

모두 상위 객체, 클래스를 상속하는 새로운 객체를 만들 수 있는 공통점이 있음

Object.create는 인자로 어떤 객체를 전달하는지에 따라 원하는 객체를 상속하는 새로운 객체를 생성

클래스에서는 extends 키워드를 사용해 상속 관계를 정할 수 있음

 

3. Object.create와 new Object는 어떻게 다를까요? 

Object.create로 객체를 생성하면 인자로 넣은 객체를 상속하는(프로토타입으로 하는) 새로운 객체를 만들 수 있음 

new 키워드로 내장된 Object 생성자 함수를 호출하는 경우, 새로운 빈 객체를 생성할 수 있음

 

4. 자바스크립트는 “클래스가 반쪽짜리라서 사용하기가 애매하다.” 라는 이야기가 있습니다. 어떤 이유 때문에 타입스크립트를 사용해서 슈퍼셋을 사용해야 하는지 상상되는 부분을 얘기해 주세요.

자바스크립트에서의 class는 프로토타입 기반으로, 클래스 기반 객체 지향 언어의 클래스와 다른 부분이 존재(일부 개념 미지원, 기존 클래스와 다르게 동작 등)

그렇기 때문에 타입스크립트를 이용해 private, public 등 접근 제어자를 사용할 수 있음 

 

 

5. 클래스에서 사용하는 super 키워드에 대해서 설명해주세요.

하위 클래스에서 super를 사용해 상위 클래스의 메소드나 생성자 함수를 호출할 수 있음 

 

6. 클래스에서 instanceof는 어떤 상황일때 사용할까요?

instanceof 연산자는 객체의 프로토타입 체인에 Constructor.prototype이 존재하는지 판별할 수 있음

객체가 어떤 생성자 함수의 인스턴스인지 찾기 위해 사용함  

 

7. 클래스와 함수에는 어떤 차이가 있을까요?

클래스는 객체 지향의 추상화와 다형성을 위해 사용됨 

프로퍼티와 메소드가 정의된 인스턴스 객체를 생성할 수 있음 

함수는 모듈화된 코드로, 재사용성을 높이기 위해 사용됨 

어떤 값을 입력하면 반환값이 출력됨 

 

8. 인스턴스를 생성한다는 것은 어떤 것인가요?

생성자 함수의 구체적인 객체를 생성하는 것

생성자 함수가 가진 인스턴스들의 추상적인 공통점에 추가로 구체적인 프로퍼티가 주어진 객체를 만드는 것