FRONT/JAVASCRIPT

[javascript] 객체 생성과 프로퍼티, 메소드

연듀 2021. 6. 17. 15:06

 

객체란?

 

원시 타입의 값은 변경 불가능한 값이지만 객체는 변경 가능한 값으로, 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조다.

 

프로퍼티: 객체의 상태를 나타내는 값. 키와 값으로 구성

메서드: 프로퍼티를 참조하고 조작할 수 있는 동작

 

var counter = {
	num: 0, // 프로퍼티
    //num : 프로퍼티 키, 0 : 프로퍼티 값
    increase: function() { // 메서드
    	this.num++;
    }
};

 

 

객체 리터럴에 의한 객체 생성

 

 

리터럴은 사람이 이해할 수 있는 문자, 약속된 기호를 사용해 값을 생성하는 표기법이다.

객체 리터럴은 객체를 생성하기 위한 표기법이다.

 

객체 리터럴은 값으로 평가되는 표현식이다. 이 때 쓰이는 중괄호는 코드 블록을 의미하지 않기 때문에

중괄호 뒤에 세미콜론을 붙인다.

 

 

프로퍼티

객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다.

프로퍼티 키는 프로퍼티 값에 접근할 수 있는 이름으로서 식별자 역할을 한다.

프로퍼티 키가 식별자 네이밍 규칙을 따르지 않는다면 반드시 따옴표를 사용해야한다.

 

1.접근

  • 마침표 표기법
  • 대괄호 표기법
var person = {
	name: 'Kim'
};
console.log(person.name); // 마침표 표기법
console.log(person['name']); // 대괄호 표기법(반드시 따옴표로 감싼 문자열이어야 함)

 

2.갱신

 

 이미 존재하는 프로퍼티에 대하여 값을 할당하면 프로퍼티 값이 갱신된다.

person.name = "Lee";
console.log(person); //{name: "Lee"}

 

3.동적 생성

 

 존재하지 않는 프로퍼티에 값을 할당하면 프로퍼티가 동적으로 생성되어 추가되고 값이 할당된다.

person.age = 20;
console.log(person); // {name: "Kim", age:20}

 

4.삭제

 

 delete 연산자는 객체의 프로퍼티를 삭제한다. 

delete person.age;

 

 

메서드

 

자바스크립트의 함수는 객체다. 함수는 값으로 취급 할 수 있기 때문에 프로퍼티 값으로 사용할 수 있다.

프로퍼티 값이 함수일 경우 일반 함수와 구분하기위해 '메서드'라 부른다.

즉, 메서드는 객체에 묶여 있는 함수를 의미한다.