オブジェクトを完全に凍結する

Beginner

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

はじめに

この実験では、JavaScript でオブジェクトを完全に凍結する方法を探ります。Object.freeze() メソッドを再帰的に使用してオブジェクトのすべてのプロパティを凍結し、変更不可能にする方法を学びます。この実験が終わるとき、JavaScript コードでオブジェクトの変更を防止し、データの整合性を確保する方法をより深く理解しているでしょう。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 92%です。学習者から 100% の好評価を得ています。

JavaScript でオブジェクトを完全に凍結する方法

JavaScript でオブジェクトを完全に凍結するには、次の手順に従います。

  1. Object.keys() を使用して、渡されたオブジェクトのすべてのプロパティを取得します。
  2. Array.prototype.forEach() を使用して、プロパティを反復処理します。
  3. 必要に応じて deepFreeze() を適用しながら、すべてのオブジェクトであるプロパティに再帰的に Object.freeze() を呼び出します。
  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; // 許可されていません
val[1][0] = 4; // 同様に許可されていません

上記のコードはエラーを投げます。なぜなら、val オブジェクトは完全に凍結されており、変更できないからです。

まとめ

おめでとうございます!あなたは「完全に凍結されたオブジェクト」の実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を行って練習してください。