[객체19]
두 개의 객체를 입력받아 두번째 객체의 속성들을 첫번째 객체에 추가해야 합니다.
인자 1 : obj1
임의의 속성을 갖는 객체
인자 2 : obj2
임의의 속성을 갖는 객체
별도의 리턴문(return statement)을 작성하지 않습니다.
추가하려는 속성이 이미 첫번째 객체에 존재하는 경우, 기존 값을 그대로 둡니다.
두번째 객체는 수정하지 않아야 합니다.
// obj1의 속성이 우선시된다
// obj1의 속성 === obj2의 속성 이면, 추가 x
// 다르면, obj2[prop]을 obj1에 추가
// 라고 생각했는데..
function extend(obj1, obj2) {
for (let prop1 in obj1) {
for (let prop2 in obj2) {
if (prop1 !== prop2) {
obj1[prop2] = obj2[prop2];
} else if (prop1 === prop2) {
obj1[prop1] = obj1[prop1] // 여기서 제대로 작동되지 않음
}
}
}
}
// ref
// if (!(key in obj1)) 이런식으로 쓰는 방식 훈련하기!
function extend(obj1, obj2) {
for (let key in obj2) { // obj2의 속성값을 순회
if (!(key in obj1)) { // 만약, obj1안에 key가 없으면,
obj1[key] = obj2[key]; // obj1의 키값으로 obj2의 키값을 할당
}
}
}