inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

MostOneBrush

*= 는 값을 곱한 후에 할당한다는 의미

*는 단순히 곱한다는 의미입니다.

색칠하신 부분을 예로 들면

obj[sum] *= 2는 풀어서 설명하면 obj[sum] = obj[sum] * 2,

원래의 obj[sum]의 값에 2를 곱한 뒤에 그 값을 다시 obj[sum]에 재할당하는 것으로 보시면 되고

obj[sum] * 2 는 똑같이 obj[sum]*2 로  곱셈연산은 했지만 할당한 값이 없어 원래의 menu가 결과 값으로 나옵니다.

0

한경수

너무 감사합니다. 아 배운건데 왜 생각이 안날까요ㅜ 혼자공부하다보니 허점이 많은것 같습니다. 댭변해주셔서 감사합니당~