객체를 들어가기전에 기본적인 객체 사용법을 이야기하겠습니다.
1. 객체
지난번에도 이야기했지만 객체는 상태(프로퍼티)와 속성(메소드)로 이루어져있다고 했습니다. (앞으로 용어의 통일성과 설명을 위해 프로퍼티와 메소드라는 이름으로 설명을 이어나가겠습니다.) 세가지 단어에 대한 설명을 덧붙이자면, 객체란 프로그램에서 활용하기 위해 취급하는 대상이고 프로퍼티는 객체의 상태나 특성을 나타내기 위한 정보, 메소드는 객체를 조작하기 위한 기능입니다.
2. 인스턴스와 인스턴스화
객체는 기본적으로 직접 접근하는 것을 허용하지 않습니다. 왜냐하면 외부에서 객체 원본에 직접 접근하여 데이터를 손상시키거나 바꿔버릴 수 있는 위험에 대해 방지하고, 두 개 이상의 장소에서 같은 데이터에 대해 값을 수정하려고 하면 오류가 발생합니다.
상기한 이유때문에 객체에 접근할 때에는 객체 원본이 아닌 객체 원본을 복사한 사본을 조작하도록 되어있습니다. 이 과정에서 객체의 복제를 생성하는 것을 인스턴스화, 이 인스턴스화로 인해 생성된 복사된 객체를 인스턴스라고 칭합니다. 그래서 같은 객체라도 인스턴스화를 통해 생성된 인스턴스를 통해 두 개 이상의 장소에서 하나의 객체에 안전하게 접근하고 조작할 수 있게 합니다.
3. new 연산자
new 연산자는 객체를 인스턴스화 시키는데 이용됩니다. 기본적인 사용법은 다음과 같습니다.
let 변수명 = new 객체명(인수);
// 여기에 담김 <- 이 객체가 인스턴스화 되어
이렇게 new 연산자를 통해 생성된 인스턴스는 좌측에 선언된 변수에 저장되어 이 변수를 객체처럼 이용할 수 있게됩니다.
인스턴스화 과정에서 객체를 초기화 시키는데, 초기화를 위해 객체 내부에 객체명과 똑같은 이름의 메소드가 존재합니다. 이 메소드를 특별히 생성자(constructor)라고 합니다. 나중에 사용자 생성 객체에서도 다루겠지만 이 생성자는 명시적으로 선언해주는것이 좋습니다.
4. 프로퍼티와 메소드의 호출
이제 객체를 사용하기 위해서 new 연산자를 통한 인스턴스에서 객체의 프로퍼티와 메소드를 호출해야합니다. 호출은 닷(.)연산자를 통해서 호출합니다.
객체명.프로퍼티명;
객체명.메소드명(인수);
//여기서 객체명은 인스턴스화된 인스턴스 객체 변수
추가적으로 프로퍼티에 접근하는 방법으로 대괄호를 이용한 방법도 있습니다.
변수명['프로퍼티명'];
다음은 두가지 호출 방법으로 객체에 접근하는 예시입니다.
const cat1 = {
name: 'ray',
age: 0
};
console.log(cat1.name); //닷 연산자 이용
console.log(cat1['name']); //대괄호 구문 이용
cat1.name = 'Ray';
cat1['age'] = 1;
console.log(cat1.name);
console.log(cat1['age']);
'Programming > Javascript' 카테고리의 다른 글
[Javascript] 정적 프로퍼티와 정적 메소드 (0) | 2021.03.03 |
---|---|
[Javascript] 배열 (0) | 2021.03.02 |
[Javascript] 객체 (0) | 2021.02.26 |
[Javascript] 재귀 함수 (0) | 2021.02.26 |
[Javascript] 함수에서 여러 값 반환하기 (0) | 2021.02.26 |
댓글