JavaScript/JavaScript 중급

[JavaScript] 객체 메소드, 계산된 프로퍼티

J1woong 2024. 3. 7. 21:50
728x90
반응형
반응형

계산된 프로퍼티

 객체를 만들 때 key대괄호로 둘러싸여 있는 경우를 말한다.

 아래 코드를 살펴보자.

let a = 'age';
let user = {
	name : 'jiwoong',
	[a] : 4
}

 

 객체 안key를 문자열 age가 할당된 변수 a에서 가져왔다.

 

 다음과 같이 식 자체를 대괄호에 넣을 수 있다.

const user = {
	[1+1] : 2,
	['안녕' + '하세요'] : 'hello'
}

 

객체 메소드

 객체 메소드객체에서 사용할 수 있는 메소드를 말한다.

 몇가지를 살펴보자.

 

Object.assign()

 객체 복제 또는 병합한다.

 객체복제할 때 아래와 같이 하면 어떻게 될까?

 

let user = {
	name : 'jiwoong',
	age : 4
}

let cloneUser = user;

 

 이렇게 작성하면 cloneUser 에는 user 객체참조값만 저장된다.

 즉, 하나의 객체usercloneUser접근하게 된다.

 따라서, cloneUser 의 내용을 바꾸면 user 의 내용에도 영향을 끼친다.

let user = {
	name : 'jiwoong',
	age : 4
}

let cloneUser = user;

cloneUser.age = 6;
console.log(user.age);

 

 동일한 객체복사하기 위해서는 Object.assign() 을 사용한다.

let user = {
	name : 'jiwoong',
	age : 4
}

let cloneUser = Object.assign({}, user);
console.log(cloneUser);

 

 괄호 안의 첫번째 인자초기값으로, 두번째 인자병합된다.

 

 아래 코드는 병합하는 경우이다.

let user = {
	name : 'jiwoong',
	age : 4
}

let cloneUser = Object.assign({gender:'male'}, user);
console.log(cloneUser);

 

 초기값key가 같은 경우, 덮어 쓰기 된다.

let user = {
	name : 'jiwoong',
	age : 4
}

let cloneUser = Object.assign({age:6}, user);
console.log(cloneUser);

 

 2개 이상의 객체병합 할 수 있다.

let user = {
	name : 'jiwoong'
}
let info1 = {
	age : 4
}
let info2 = {
	gender: 'male'
}
let cloneUser = Object.assign(user,info1,info2);
console.log(cloneUser);

 

Object.keys()

 key 배열 반환한다.

let user = {
	name : 'jiwoong',
	age : 4
}

let keys = Object.keys(user);
console.log(keys);

 

Object.values()

 value 배열반환한다.

let user = {
	name : 'jiwoong',
	age : 4
}

let values = Object.values(user);
console.log(values);

 

Object.entries()

 key value 배열반환한다.

let user = {
	name : 'jiwoong',
	age : 4
}

let entries = Object.entries(user);
console.log(entries);

 

 이 때, 배열 안key, value 한쌍으로 이루어진 배열이 들어간다.

 

Object.fromEntries()

 key value 배열객체로 만든다.

let user = [
	['name','jiwoong'],
	['age',4]
];

let result = Object.fromEntries(user);
console.log(result);

 

 Object.entries() 에서 반환된 배열처럼 배열 안key, value 배열을 넣어준다.

728x90
반응형

'JavaScript > JavaScript 중급' 카테고리의 다른 글

[JavaScript] 문자열 메소드  (0) 2024.03.12
[JavaScript] Number, Math  (0) 2024.03.12
[JavaScript] 심볼  (0) 2024.03.08
[JavaScript] 생성자 함수  (0) 2024.03.06
[JavaScript] 변수, 호이스팅, TDZ  (2) 2024.03.05