Js 객체 관련 문제 풀다 궁금증이 생겼습니다.
267
0
let menu = {
width: 200,
height: 300,
title: "My menu"
};
function multiplyNumeric (obj) {
for (let sum in obj) {
if (typeof obj[sum] == 'number') {
obj[sum] * = 2
}
}
return menu
}
multiplyNumeric(menu);
/*
{
"width": 400,
"height": 600,
"title": "My menu"
}
*/
색을 칠한 부분을 *=가 아닌 *만 하면 처음 menu값만 나오는데, *=와 *의 로직을 잘 이해하지 못하겠습니다..ㅠㅠ
고수님들 도와주실 수 있나요??
답변 1
0
*= 는 값을 곱한 후에 할당한다는 의미
*는 단순히 곱한다는 의미입니다.
색칠하신 부분을 예로 들면
obj[sum] *= 2는 풀어서 설명하면 obj[sum] = obj[sum] * 2,
원래의 obj[sum]의 값에 2를 곱한 뒤에 그 값을 다시 obj[sum]에 재할당하는 것으로 보시면 되고
obj[sum] * 2 는 똑같이 obj[sum]*2 로 곱셈연산은 했지만 할당한 값이 없어 원래의 menu가 결과 값으로 나옵니다.





