객체가 깊이 동결되었는지 확인하기

Beginner

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

소개

이 랩에서는 JavaScript 에서 객체가 깊이 동결 (deeply frozen) 되었는지 확인하는 방법을 배웁니다. 이 랩은 Object.isFrozen()을 사용하여 객체가 동결되었는지 확인하고, Object.keys()Array.prototype.every()를 사용하여 모든 키가 깊이 동결되었는지 확인하는 재귀 함수를 안내합니다. 이 랩을 통해 JavaScript 에서 객체의 깊이 동결 상태를 결정하는 방법에 대한 이해를 높일 수 있습니다.

객체가 깊이 동결되었는지 확인하는 방법

객체가 깊이 동결되었는지 확인하려면 JavaScript 에서 다음 단계를 따르세요.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.
  2. 재귀 (recursion) 를 사용하여 객체의 모든 속성이 깊이 동결되었는지 확인합니다.
  3. 주어진 객체에 Object.isFrozen()을 사용하여 얕게 동결 (shallowly frozen) 되었는지 확인합니다.
  4. Object.keys()를 사용하여 객체의 모든 속성을 가져오고, Array.prototype.every()를 사용하여 모든 키가 깊이 동결된 객체이거나 객체가 아닌 값인지 확인합니다.

다음은 객체가 깊이 동결되었는지 확인하는 코드 스니펫 예시입니다.

const isDeepFrozen = (obj) =>
  Object.isFrozen(obj) &&
  Object.keys(obj).every(
    (prop) => typeof obj[prop] !== "object" || isDeepFrozen(obj[prop])
  );

isDeepFrozen 함수를 사용하여 객체가 깊이 동결되었는지 다음과 같이 확인할 수 있습니다.

const x = Object.freeze({ a: 1 });
const y = Object.freeze({ b: { c: 2 } });
isDeepFrozen(x); // true
isDeepFrozen(y); // false

요약

축하합니다! 객체가 깊이 동결되었는지 확인하는 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.