출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]
closure를 공부하다가
let f;
{
let o = { note: "Safe" };
f = function () {
return o;
};
}
let oRef = f();
console.log(oRef);
oRef.note = "not so safe";
console.log(oRef);
이와 같은 코드를 사용하게 되었다.
나는 당연히 console창에 note : "Safe"} 와 {note : "not so safe"} 가 찍힐 것이라고 예상 했지만 결과는 2개의 {note : "not so safe"} 였다.
왜 이렇게 되는지 이해가 되지 않아 찾아봤더니 객체를 로깅할 때는 객체의 내용 변경사항이 실시간으로 업데이트 된다고 한다. 내가 적은 코드의 경우에서도 객체이고, 이 객체의 내용이 변했기 때문에 그전 콘솔에서도 그 변경이 반영됐다는 것이다.
참고문헌-
www.zerocho.com/category/JavaScript/post/5b2b45cf1350f9001b662ba6
(JavaScript) 입문자가 겪기 쉬운 console.log 실수
안녕하세요. 이번 시간에는 console 객체에 대해 알아보면서, 입문자분들이 많이 헷갈려하는 부분에 대해서도 짚어 보겠습니다. 자바스크립트 개발을 할 때 console.log 많이들 쓰시죠? 저도 많이 씁�
www.zerocho.com
댓글 영역