JavaScriptでディープクローンする方法
JavaScriptオブジェクトをどのようにディープクローンしますか? 私はのようなフレームワークに基づいたさまざまな機能があります知っているJSON.parse(JSON.stringify(o))と$.extend(true, {}, o)私はそれのようなフレームワークを使用する必要はありません。 ディープクローンを作成する最もエレガントで効率的な方法は何ですか。 アレイのクローンのようなエッジケースも気にします。プロトタイプチェーンを壊さず、自己参照を扱います。 DOMオブジェクトなどのコピーをサポートする必要はありません.cloneNode。その理由は、そのため存在しているからです。 私は主にディープクローンを使用したいのでnode.js、V8エンジンのES5機能を使用できます。 [編集] だれかが提案する前に、オブジェクトからプロトタイプ的に継承してコピーを作成することとそれを複製することの間には明確な違いがあります。前者はプロトタイプチェーンを混乱させます。 [さらに編集] あなたの答えを読んだ後、オブジェクト全体を複製することは非常に危険で難しいゲームであるという迷惑な発見に行きました。たとえば、次のクロージャベースのオブジェクトを考えてみましょう var o = (function() { var magic = 42; var magicContainer = function() { this.get = function() { return magic; }; this.set = function(i) { magic = i; }; } return new magicContainer; }()); var n = clone(o); …