불변성
Immutability
(unchangable)
// 함수 내부에서 외부로부터 주어진 인자의 값을 변경하는 것은 좋지 않다. 절대❌
// 상태 변경이 필요한 경우에는, 새로운 상태를(Object, Value) 만들어서 반환해야함.
// 원시값 - 값에 의한 복사
// 객체값 - 참조에 의한 메모리주소의 복사
function display(num) {
num=5;
console.log(num);
}
const value = 4;
display(value);
console.log(value);
// function displayObj(obj) {
// obj.name = 'Bob';
// // ❌❌❌❌❌외부로부터 주어진 인자(object)를 내부에서 절대 변경하면 안됨.
// console.log(obj);
// }
const ellie = {name : 'Ellie'};ffhhhhh
displayObj(ellie);
console.log(ellie);
function changeName(obj){ // 부득이하게 바꾼다면 이름부터 변경 느낌 주도록!
return{...obj, name: 'Bob'}; // 반환할때는 새로운 Object 만들기!
}
// Object라는 특정한 상태를 만들때 어딘가와 주고 받아야한다면 상태가 변경되지 않도록 불변성을 유지하게 코딩하는것이 중요하다는 뜻.
// 함수 내부에서 외부로부터 주어진 인자의 값을 변경하는 것은 좋지 않다. 절대❌
// 상태 변경이 필요한 경우에는, 새로운 상태를(Object, Value) 만들어서 반환해야함.
// 원시값 - 값에 의한 복사
// 객체값 - 참조에 의한 메모리주소의 복사
// 무언가 부득이하게 변경해야 한다면, 우선 함수 이름부터 변경되었다는 느낌을 주는 이름으로 변경해주어야 한다. function change~blahblah와 같이.
// 기존에 주어진 object를 그대로 유지하면서 새로 변경하고 하는 게 있다면, 새로운 object 만들기!▼
function changeName(obj){ // 부득이하게 바꾼다면 이름부터 변경 느낌 주도록!
return{...obj, name: 'Bob'}; // 반환할때는 새로운 Object 만들기!
}
'새로운 경험' 카테고리의 다른 글
[TIL]2022.11.15 Create Function 생성자 함수 JavaScript (0) | 2022.11.15 |
---|---|
[TIL]2022.11.15 Method 객체 안의 함수 JavaScript (0) | 2022.11.15 |
[WIL]2022.11.06~11.13 (0) | 2022.11.14 |
[TIL]2022-11-13 콜백함수(프로그래밍의꽃🌺) JavaScript (0) | 2022.11.14 |
[TIL]2022-11-13 Expression 함수의 표현식. 선언문과 표현식의 차이? (0) | 2022.11.13 |
댓글