출처: https://ko.javascript.info/object-copy 참조에 의한 객체 복사 ko.javascript.info 자바스크립트에서의 원시 타입과 객체의 근본적인 차이는 객체는 참조에 의해(by reference) 저장되고 복사된다는 것이다. 원시값(문자열, 숫자, boolean) 값 : 값 그대로 저장 / 할당 / 복사 객체 값 : 참조에 의해(by reference) 저장되고 복사 원시값 let message = "Hello!"; let phrase = message; 예시를 실행하면, 각각의 독립적인 변수에 "Hello" 가 저장된다. 객체값 let user = { name: "John" }; 객체는 어느 메모리 내 어딘가에 저장되고, 변수 user 엔 그 객체를 참조할 수 있는 ..
https://ykss.netlify.app/translation/javascript_memory_management/?utm_source=oneoneone 를 읽고 정리 자바스크립트 엔진은 어떻게 메모리를 관리하나요? 자바스크립트 엔진은 가비지 컬렉터를 사용해 더이상 사용하지 않는 메모리를 확보한다. 가비지 컬렉터는 애플리케이션에서 더이상 사용하지 않는 객체를 찾아내고 제거한다. 가비지 컬렉터는 코드의 객체와 변수를 지속적으로 모니터링하고 어떤 객체가 참조되고 있는지 추적하기 때문에 가능하다. 흔한 메모리 누수의 원인은 무엇인가요? 1. 순환참조 두개이상의 객체가 서로를 참조하여 가비지 컬렉터가 끊을 수 없는 순환을 생성할 때 메모리 누수가 발생한다. 객체가 언제 사용되지 않는지 판단할 수 없기 때문에..
function printMessage(){ const value = messageInput.value(); } function addListener(){ btn1.addEnverntListener('click', printMessage); } btn2.addEventListener('click', addListener); 함수를 정의하면 브라우저의 힙 메모리에 저장되어 하나만 존재하게 된다. 위의 click listener 함수는 해당 함수에 대한 참조값을 지니게 되고, 이미 등록된 함수중에 참조가 있으면 추가하지 않는다. 단, 익명함수로 추가하게 되면 실행될 때 마다 힙에 새롭게 추가된다.(서로 다른 참조값을 가진다.) (참고 : https://velog.io/@wangjh789/%EC%9D%B5%E..