코딩공부
-
[JAVASCRIPT-모던자바스크립트] new 연산자와 생성자 함수2Javascript& React study 2021. 10. 23. 05:47
new function() {...} 재사용할 필요가 없는 복잡한 객체를 만들어야 한다고 했을때 많은 양의 코드가 필요할 것이다. 이럴때에는 익명 생성자 함수로 감싸주는 방식을 사용할 수 있다. let user = new function() { this.name = "John"; this.isAdmin = false; // 사용자 객체를 만들기 위한 여러 코드 // 지역 변수, 복잡한 로직, 구문등 // 다양한 코드가 들어가게 된다. } 생성자 함수의 경우 익명함수이기 때문에 어디에서도 저장이 되지 않는다. 처음 만들 때 단 한번만 호출될 목적으로 만들었기 때문에 재사용이 불가능하다. 익명 생성자 함수를 이용하게 되면 재사용을 막으면서 코드를 캡슐화할 수 있다. 생성자와 return문 생성자 함수에는 보..
-
[JAVASCRIPT-모던자바스크립트] 가비지 컬랙션2Javascript& React study 2021. 10. 15. 05:00
참조 두 개 참조를 user에서 admin으로 복사했다고 가정해보자. // user엔 객체 참조 값이 저장됩니다. let user = { name : "John" }; let admin = user; 그리고 위에서 한것처럼 user의 값을 다른 값으로 덮어써 봅시다. user = null; 전역 변수 admin을 통하면 여전히 객체 John에 접근할 수 있기 때문에 John은 메모리에서 삭제되지 않습니다. 이 상태에서 admin을 다른 값 (null 등)으로 덮어쓰면 John은 메모리에서 삭제될 수 있습니다. 연결된 객체 function marry (man, woman) { woman.husband = man; man.wife = woman; return { father: man, mother: woma..
-
[JAVASCRIPT-모던자바스크립트] 참조에 의한 객체 복사2 / 가비지 컬랙션Javascript& React study 2021. 10. 14. 05:00
지금까진 user의 모든 프로퍼티가 원시값인 경우만 가정했으나 프로퍼티는 다른 객체에 대한 참조 값일 수도 있다. 이러한 경우에는 아래와 같이 진행될 것이다. let user = { name : "John", sizes: { height: 182, width: 50 } }; alert( user.sizes.height ); // 182 clone.sizes = user.sizes로 프로퍼티를 복사하는 것만으로는 객체를 복제할 수 없다. user.sized는 객체이기 때문에 참조값이 복사되기 때문이다. clone.sizes = user.sizes로 프로퍼티를 복사하면 clone과 user는 같은 sizes를 공유하게 된다. let user = { name : "John", sizes: { height: 1..
-
[JAVASCRIPT-모던자바스크립트] 참조에 의한 객체 복사Javascript& React study 2021. 10. 10. 05:00
객체와 원시 타입의 근본적인 차이 중 하나는 객체는 '참조에 의해(by reference)'저장되고 복사된다는 것이다. 원시값(문자열 숫자,불린값)은 값 그대로 저장 할당되고 복사는 아래와 같이 된다. let message = "Hello"; let phraaw = message; 예시를 실행하면 두 개의 독립된 변수에 각각 문자열 "Hello!"가 저장됩니다. 하지만 객체의 동작방식은 이와 다르다고 할 수 있다. 변수엔 객체가 그대로 저장되는 것이 아니라 객체가 저장되어있는 '메모리 주소'인 객체에 대한 '참조 값'이 저장된다. 그림을 통해 변수 user에 객체를 할당할 떄 무슨 일이 일어나는지 알아보자 let user = { name : "John" } 객체는 메모리 내 어딘가에 저장되며 변수 use..