Programming/JavaScript

2019.12.29 객체

프로그래밍밍 2019. 12. 29. 15:50
반응형

객체

 

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

프로퍼티가 무엇인지 궁금한 사람들이 있을것이다.

밑에서 살펴보자.

 

프로퍼티

 

위에서는 객체의 키와 값이라고 말했지만 정확히 말하자면 프로퍼티 키,프로퍼티 값이다.

프로퍼티는 유일하게 프로퍼티 키로 인해서 식별이 가능하다.

프로퍼티 키와 값을 정하는 규칙이 있다. 

 

<규칙>

프로퍼티 키: 모든 문자열(빈 문자열 포함) or 심볼값

프로퍼티 값: 모든 값

 

프로퍼티의 키는 지정할때 암묵적 타입변환이 가능하고

같은 이름의 키를 선언한다면 나중에 선언된 키가 선택된다.

또, 객체를 보면 배열과 비슷하다고 생각할지도 모른다.

하지만 배열은 순서를 정하지만 객체는 순서에 상관없다는 차이가 있다.

 

1.2 메소드

 

프로퍼티 값이 함수일경우를 보며 메소드라고 부른다.

 

2. 객체 생성 방법

 

2.1 객체

 

일단 가장 일반적인 객체 생성 방법을 알아보자.

 

위의 방법은 이전에도 설명한바가 있으므로 빠르게 넘어간다.

 

2.2 Object 객체

 

위의 일반적인 객체 생성방식은 객체 안에 키와 값을 전부 넣는 방법이었다.

하지만,

Object 객체 생성방식은 빈 객체를 생성해서 그 안에 값을 넣는 방식이다.

 

 

2.3 생성자 함수

 

맨 위에서 설명했던 사진부터 보던 사람들은 대체 this가 뭐지? 라고 생각할거다.

객체 또는 함수를 생성하면 파라미터(=매개변수)를 지정해야할때가 있다.

그때, 해당 객체 또는 함수의 블록 안에서 파라미터(=매개변수)를 참조하고 싶을때

this.(파라미터명)을 사용하여 참조한다.

this를 사용하여 참조하게되면 그 데이터는 외부에서 참조가 가능해진다.

하지만 this를 사용하지 않게 되면 내부 참조만 가능하다.

 

3. 프로퍼티 값읽기

 

프로퍼티 값을 지정했으면 참조해서 사용할줄 알아야 한다.

즉, 값을 읽는 방법을 알아야한다.

 

console.log(객체.프로퍼티키)

 

이때, 프로퍼티키에 기호가 들어가게되면 읽는 방법이 달라진다.

 

console.log(객체.['기호가 들어간프로퍼티키'])

 

이렇게 접근을 하게되면 갱신도 가능하게되므로 아주 유용하다.

만일 생성을 하고 싶다면

 

객체.새로 만들 프로퍼티키 = 프로퍼티 값

 

이렇게 코드를 적어주면 없던 프로퍼티 키와 값이 생기게된다.

그리고 객체를 호출하게되면 다 나온다.

만일 삭제를 원한다면 delete를 사용해야한다.

 

delete 객체

or

delete 객체.프로퍼티키

 

객체에 있는 값들을 모두 불러오고싶을때는 for-in문을 사용한다.

for-in문은 배열에도 사용할수있는데 배열에 사용하게 되면 배열의 순서와 상관없이 출력될 가능성도 있고

배열의 요소들만을 접근하지 않는다.

이런 단점때문에 최근에 es6와 함께 for-of문이 나왔다.