본문 바로가기

프론트앤드 수업

[javascript] 객체, 생성자함수, in연산자, 객체의 복사

728x90


01계산된 속성. .['']
.[]을 사용할 때는 코딩하는 순간 그 값을 받아오고 싶을때
[]를 사용할때는 런타임에서 결정하거나 실시간으로 원하는 키값을 받아오고 싶을때

function printValue(obj, key) {
console.log(obj.key); // undefined 닷으로 적으면 안됨
console.log(obj[key]); // 값이 나옴
}

02. 단축 프로퍼티
let person1 ={name:'bob',age:2};
let person2 ={name:'steve',age:5};
let person3 ={name:'dave',age:4};
let person4 ={name:'min',age:4};

function makePerson(name,age){
return{
name, // 변수과 이름이 같을때 키생략이 가능하다.
  age:age,
}
}
makePerson('blue',5)

03. 생성자함수 // 객체를 만들기위한 틀
function Person(name, age){
this = {} // 생략
this.name = name;
this.age = age;
return this; // 생략
}
let person6 = new Person('abc',30); //new로 생성을해야 생성된다.

04. in 연산자 : 오브젝트에 키가 있는지 없는지 확인
'name' in obj

05. 객체의 순환
for ...in문
let user ={
name:'min',
age:30,
}
for (let a in user) { // 오브젝트의 키값을 a에 대입
console.log(user[a]) //값을 출력하기 위해서는 키값이 들어가있는 변수를 넣어 출력
}

06. 객체의 복사
let user = {
name: 'a',
age: 30,
}
for (let key in user) {
user2[key] = user[key]; // 하나씩 직접 복사해줘야한다.
}
assign을 사용
let user3 = {};
Object.assign(user3, user); // 앞에있는 오브젝트가 대상 뒤에있는 객체를 복사해준다.
let user4 = Object.assign({},user); // for문을 사용하지 않아도 바로복사

Object.assign({},obj1)
Object.keys(obj) - 객체의 key항목을 배열로 반환해줌
Object.values(obj) - 객체의 값 항목을 배열로 반환해줌
Object.entries(obj) - 객체의 키/값을 배열로 반환해줌

728x90
댓글