Array.prototype.sort와 Object.freeze
개요
Redux에서 가져온 배열을 sort함수를 사용해서 정렬할 하다가 에러가 발생했고 검색을 통해 sort함수와 freeze 함수에 대해서 정리하고자 한다.
Array.prototype.sort
sort함수는 배열을 정렬하는 함수이다. 정렬된 배열을 반환하기 때문에 원본 배열에는 변화가 없을 것이라고 착각했는데 실제 동작은 원본 배열을 정렬 후 해당 배열의 참조를 리턴한다.
const a = [1, 2, 3];
const b = a.sort((a, b) => b - a);
console.log(b); > [3, 2, 1]
console.log(a); > [3, 2, 1]
console.log(a === b) > true
Object.freeze
freeze함수에 배열이나 객체의 참조를 파라미터로 전달하면서 호출하면 해당 배열이나 객체의 property를 변경 할 수 없다. strict 모드에서만 작동한다.
const a = [1, 2, 3];
Object.freeze(a);
a.sort();
-----------------------
Uncaught TypeError: Cannot assign to read only property '0' of object '[object Array]'
Author And Source
이 문제에 관하여(Array.prototype.sort와 Object.freeze), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@commitnpush/Array.prototype.sort와-Object.freeze저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)