자바스크립트 객체 인스턴스에 대해 알아보기 전에 기술적 측면을 먼저 살펴보자. 객체란 우리의 실제 생활에 있는 대상을 프로그래밍적으로 구현한 것이다. (이 글은 <What is an instance of object in JavaScript>를 번역한 것입니다.)
코드는 컴퓨터에게 특정한 대상[객체]을 설명하는 역할을 한다. 코드는 대상의 속성은 무엇이며, 이러한 대상이 무엇을 할 수 있는지[메소드]를 설명한다. 다음은 사람이라는 대상을 객체로 표현한 것이다.
function Person(name, age, gender, greeting) {
this.name = name;
this.age = age;
this.gender = gender;
this.greeting = function()
{
alert('Hi! I\'m.' + this.name +
'.');
};
}
이제 해당 객체의 인스턴스(instance)를 만들어보자.
// Instance creation
var guy = new Person('Juan, 40, 'male');
// Instance consumption
guy.greet();
guy
라는 인스턴스는 정의에 따라 Person
생성자 함수를 살펴보고, 이를 메모리에 할당하여 생성된다.
다른 예로, 요리책을 생각해보자. 맛있는 감자 스프를 만드는 요리법이 요리책에 있을 수 있지만, 페이지를 읽어서만은 감자 스프 맛을 볼 수가 없다. 요리책에는 감자 스프가 없기 때문이다.
요리책과 상호 작용하기 위해서는 감자 스프[인스턴스]를 만들어야 한다. 아침에 감자 스프[인스턴스]를 만들고, 저녁에 또 먹고 싶어 두 번째 감자 스프[또 다른 인스턴스]를 만들었다고 해보자. 각 감자 스프가 바로 인스턴스다. (참고로, 이들은 동일한 레시피를 사용했지만, 동일한 대상[인스턴스]은 아니다.)
한 줄 정리: 인스턴스란 메모리에 저장되는 객체의 실체에 초점을 맞춘 용어다.
'개발 > JavaScript' 카테고리의 다른 글
자바스크립트 공부 독학 사이트 추천 (0) | 2020.06.18 |
---|---|
자바스크립트 배열 속성 및 메소드 정리 (0) | 2020.06.10 |
자바스크립트 화살표 함수 사용 방법 정리 (0) | 2020.06.09 |