JavaScript でオブジェクトを複製するには、元のオブジェクトから独立したコピーを作成する必要があります。クローンに加えた変更は元のクローンに影響を与えるべきではなく、その逆も同様です。
ES2022 では、オブジェクトのクローンを作成する効率的で標準的な方法を提供する StructuredClone() が導入されました。循環参照を含む複雑なデータ構造のクローン作成をサポートします。
const clone = structuredClone(object);
structuraldClone() をサポートしていないブラウザの場合は、手動クローン作成プロセスが必要です。単純なオブジェクトは単純な割り当てで複製できますが、列挙不可能なプロパティやプロトタイプの継承を持つ複雑なオブジェクトには、より厳密なアプローチが必要です。
function clone(obj) { // Handle null, undefined, and simple types if (obj === null || typeof obj !== "object") return obj; // Clone custom Date objects if (obj instanceof Date) { return new Date(obj.getTime()); } // Clone Arrays if (obj instanceof Array) { return obj.map(clone); } // Clone Objects if (obj instanceof Object) { let clone = {}; for (const key in obj) { if (obj.hasOwnProperty(key)) { clone[key] = clone(obj[key]); } } return clone; } throw new Error("Unable to clone object. Its type is not supported."); }
この関数は、Date オブジェクトと Array オブジェクトの特殊なケースを処理し、適切なコピーを保証します。
この手動クローン作成アプローチはより複雑ですが、より優れた柔軟性とサポートを提供します。単純な割り当てと比較して、より多くのデータ型を使用できます。循環参照のないデータ構造を前提としていることに注意することが重要です。そのような構造のクローンを作成すると無限再帰が発生する可能性があります。
以上が異なる環境で JavaScript オブジェクトのクローンを効果的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。