Language/javascript

[JavaScript] object

다닿 2023. 10. 14. 15:22

객체(Object)란 자바스크립트의 객체는 키(key)과 값(value)으로 구성된 프로퍼티(Property)들의 집합이다.

프로퍼티가 없는 빈 객체도 존재한다.

// 빈 객체 obj 생성
var obj = {}

 

프로퍼티 : 키와 값으로 구성

// Object obj
var obj = {
	"key" : "value",	// 프로퍼티의 키는 "key"이고 값은 "value" 이다.
	name : "이름"	// 프로퍼티의 키는 name이고 값은 "이름"이다
}

 

객체 생성

// 기본적인 객체 생성 방법
var person = {
	name : "ㅇㅇㅇ",
	age : 30
};
// 생성자 함수를 이용한 객체 생성 방법
function Person(name,age) {
	this.name = name;
	this.age = age;
};
var person = new Person("ㅇㅇㅇ",30);
// 여러번 생성하기 편하다
var person2 = new Person("ㄱㄱㄱ",10);
var person3 = new Person("ㄴㄴㄴ",20);
var person4 = new Person("ㄷㄷㄷ",30);

 

객체 안의 있는 key값들을 순회하는 방법

for(var key in obj ) {
    // console.log(key);
}

 

객체안의 내용을 배열형태로 받아오는 방법

keys , values , entries

var keys = Object.keys(person);
console.log(keys);

var values = Object.values(person);
console.log(values);

var entries = Object.entries(person);
console.log(entries);

 

객체 복사 assing

var newPerson = {};
console.log(newPerson);
Object.assign(newPerson,person); // 복사해서 넣을 곳 , 복사할 대상 순으로 입력
console.log(newPerson);

빈 object에서 person과 같은 내용이 담겨진 것을 확인 할 수 있다.

 

복사하면서 다른 값을 넣고 싶은 경우

var newPerson = {};
Object.assign(newPerson,person, {name : "ㄱㄱㄱ"} ); 
console.log(newPerson);

객체를 복사하는 또다른 방법

var stringPerson =  JSON.stringify(person); // string으로 obj내용이 저장
console.log(stringPerson);
var objectPerson = JSON.parse(stringPerson); // object로 string을 변환
console.log(objectPerson);

결과 적으로 objectPerson은 person와 모양이 같은 객체가 되었다. 

 

객체의 {}를 없애고 안의 내용만 가지고 오고 싶을때 사용하는 명령어 ...

var testobj = {"하나":"1", "셋":"3"};
console.log("testobj");
console.log(testobj);
var testobj2 = {testobj}; // testobj2객체 안에 객체testobj가 들어감
console.log("testobj2");
console.log(testobj2);
var testobj3 = {...testobj}; // testobj3객체 안에 객체testobj의 내용이 들어감
console.log("testobj3");
console.log(testobj3);
var testobj4 = {"둘":"2"};
console.log("testobj4");
console.log(testobj4);
// testobj5객체 안에 객체testobj의 내용과 객체testobj4의 내용이 들어감
var testobj5 = {...testobj,...testobj4}; 
console.log("testobj5");
console.log(testobj5);