-
자바스크립트는 원시 타입을 제외한 모든 값이 객체입니다. 객체는 자바스크립트에서 가장 중요한 데이터 타입입니다.
객체는 객체 리터럴과 생성자로 생성할 수 있습니다.
객체
객체는 이름과 값을 한 쌍으로 묶은 데이터를 여러개 모은 것입니다. 즉 객체는 데이터 여러개를 하나로 모은 복합 데이터로 연관 배열 또는 사전이라고도 부릅니다.
예를 들어 동물을 표현하는 객체를 생성해보겠습니다
이름 값 name "dog" leg 4 객체에 포함된 데이터 하나(이름과 값의 한쌍)를 가리켜 객체의 프로퍼티 라고 부릅니다.
name:"dog" 한쌍 -> 프로퍼티
leg:4 한쌍 -> 프로퍼티
프로퍼티에서 이름 부분을 프로퍼티 이름 또는 키 라고 부릅니다.
자바스크립트에서 객체를 생성하는 방법은 두가지가 있습니다.
하나는 객체 리터럴을 사용하는 방법이고 나머지 하나는 생성자라는 함수를 사용하는 방법입니다.
1.객체 리터럴로 객체 생성하기
var animal = {name:"dog" , leg:4};
{ } 중괄호 부분이 객체 리터럴이며 객체 리터럴을 변수 anumal에 대입하고 있습니다.
프로퍼티 이름과 프로퍼티 값은 콜론(:)을 사용해서 구분하고 객체 리터럴 안에 있는 프로퍼티들은 쉼표(,)로 구분합니다.
변수에 대입된 객체 안의 프로퍼티 값을 읽거나 쓸때는 마침표나 대괄호 연산자를 사용합니다.
animal.name // -> dog animal["leg"] // -> 4
프로퍼티 추가 삭제
animal.value = 14; -> 추가 방법 console.log(animal); // -> animal {name:"dog" ,leg:4 ,value:14} delete animal.value; -> 삭제 방법 console.log(animal); // -> anumal {name:"dog" ,leg:4}
in연산자로 프로퍼티가 있는지 확인하기
in연산자를 사용하면 객체에 특정 프로퍼티가 있는지 확인할 수 있습니다. 코드를 다음과 같이 작성하면 프로퍼티가 객체에 포함되었을 때는 true 를 반환하고 포함되지 않았을 때는 false를 반환합니다
방법
프로퍼티 이름을 뜻하는 문자열 in 객체명
ex)
var animal = {name: "dog" leg: 4}; console.log("name" in animal); // -> true; console.log("value" in animal); // -> false;
객체는 참조타입
생성된 객체는 메모리의 영역을 차지하는 한 덩어리가 됩니다.
객체 타입의 값을 변수에 대입하면 그 변수에는 객체의 참조가 저장됩니다.
이때의 변수 상태를 가리켜 그 객체를 참조하고 있다 라고 합니다.
2.생성자로 객체 생성하기
function animal(name,leg){ this.name = name; this.leg = leg; }
생성자로 객체를 생성할 때는 new연산자를 사용합니다.
var animal = new animal("dog",4);
생성자 사용 이유
이름은 같지만 프로퍼티 값이 다른 객체를 여러개 생성할 때 사용
var animal = new animal("cat",4); var animal = new animal("chicken",2);
'js' 카테고리의 다른 글
이벤트 처리기 등록하기 (0) 2020.08.17 대화상자 표시하기 (0) 2020.08.17 js -데이터 타입 (0) 2020.08.17 js-변수 (0) 2020.08.17 js개념잡기 (0) 2020.08.17