참고자료
위 자료를 타이핑하며 공부한 글입니다. 자세한 내용은 위 자료를 참고해주세요.
비슷한 성질을 가진 여러개의 객체를 만들기 위해, 일종의 설계도라고 할 수 있는 생성자 함수(Constructor)를 만들어 찍어내듯 사용하는데 이렇게 생성된 객체를 인스턴스라 부를 수 있다.
위 글의 글쓴이님은 칼 만드는 과정에 비유하셨는데,
생성자함수(Constructor) = 거푸집
인스턴스 = 거푸집으로 찍어낸 칼
function Sword(color, metal) {
this.color = color;
this.metal = metal;
this.is = function() {
console.log(`This is ${this.color} ${this.metal} sword!`);
};
}
const redSteel = new Sword('red', 'steel');
console.log(redSteel); //Sword {color: 'red', metal: 'steel', is: ƒ}
redSteel.is(); //This is red steel sword!
객체지향언어에서 흔히 사용되는 클래스(Class)가 자바스크립트에서는 프로토타입(prototype)이며 생성자 함수가 사용된다. 다시 말해 클래스나 프로토타입을 사용하여 만들어 낸 것이 결과물이 인스턴스라고 할 수 있다.
이렇게 생성된 인스턴스는 원래의 객체인 클래스나 프로토타입이 가지고 있는 프로퍼티(property)와 메소드(method)를 모두 상속(inheritance)받는다.
'공부기록 > 자바스크립트 코딩테스트' 카테고리의 다른 글
throw new Error 를 try-catch로 잡아주기 (0) | 2022.07.19 |
---|---|
자바스크립트 hasOwnProperty 쓰는 이유 (0) | 2022.07.11 |
[코테강의/JS] 동전교환 (0) | 2022.07.07 |
[코테강의/JS] 중복순열 (0) | 2022.07.07 |
[코테강의/JS] 최대점수 구하기 (0) | 2022.07.07 |