객체 딥 프리즈

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 JavaScript 에서 객체를 딥 프리즈 (deep freeze) 하는 방법을 살펴봅니다. 객체의 모든 속성을 재귀적으로 프리즈하여 불변성을 갖도록 하는 Object.freeze() 메서드를 사용하는 방법을 배웁니다. 이 랩을 마치면 객체 수정을 방지하고 JavaScript 코드에서 데이터 무결성을 보장하는 방법에 대한 이해도가 높아질 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 92%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

JavaScript 에서 객체를 딥 프리즈하는 방법

JavaScript 에서 객체를 딥 프리즈하려면 다음 단계를 따르세요.

  1. Object.keys()를 사용하여 전달된 객체의 모든 속성을 가져옵니다.
  2. Array.prototype.forEach()를 사용하여 속성을 반복합니다.
  3. 객체인 모든 속성에 대해 Object.freeze()를 재귀적으로 호출하여 필요에 따라 deepFreeze()를 적용합니다.
  4. 마지막으로 Object.freeze()를 사용하여 주어진 객체를 프리즈합니다.

다음은 코드입니다.

const deepFreeze = (obj) => {
  Object.keys(obj).forEach((prop) => {
    if (typeof obj[prop] === "object") deepFreeze(obj[prop]);
  });
  return Object.freeze(obj);
};

다음 코드를 사용하여 딥 프리즈된 객체를 테스트할 수 있습니다.

"use strict";

const val = deepFreeze([1, [2, 3]]);

val[0] = 3; // not allowed
val[1][0] = 4; // not allowed as well

위 코드는 val 객체가 딥 프리즈되어 수정할 수 없기 때문에 오류를 발생시킵니다.

요약

축하합니다! 딥 프리즈 객체 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.