객체지향언어 2

JavaScript - '객체 참조', assign()

자바스크립트에서 객체는 복사되지 않고, 참조된다. 이러한 이유에서 예상하지 못했던 값의 변화로 에러를 경험하곤 한다. 사람은 현실에서든, 코드에서든 원본이 변하는 것을 좋아하지 않는다. 원본은 유일해야 하며 필요에 따라 수정할 경우 복사본을 이용하는 것이 좋다. 이런 점에서 객체를 참조하고, 원본을 수정할 수 있는 자바스크립트의 특성은 취약점이다. 자바스크립트는 prototype을 통해 얼마든지 객체 원본을 변형할 수 있다. ES2015부터 이 취약점을 해결하기 위해 assign()이라는 메서드를 제공하고 있다. 특정 객체를 전달할 때 원본을 참조하는 것이 아니라 새로 만들어서(복사) 전달하자는 컨셉이다. 사실 assign() 메서드가 등장하기 전까지는 주로 json을 활용했다. 객체를 json 형태로 ..

JavaScript - const(), freeze()

생활코딩 이고잉님 강의(JavaScript Immutability) 수강 중 정리한 내용입니다. 자바스크립트의 높은 자유도로 인해 의도적으로 수정을 제한하는 문법이 생겨났는데, const와 freeze다. const는 변하지 않는 값. 상수를 지정하는 키워드로 let과 반대되는 개념이다. (const와 let이 등장하지 않았던 시절의 var와 비교해볼 수도 있다.) const 키워드를 통해 한번 값이 지정되면 그 값은 변할 수 없다. 값이 특정 메모리에 위치한다는 것을 생각했을 때 const로 지정된 '이름(name)' 을 변경할 수 없다는 의미다. const가 나오기 이전 ES5에서 객체의 자유도에 제한을 주기 위한 메소드 freeze()가 등장했는데, const과 자주 비교되는 메소드다. const가..

1