私は Angular と Underscore の両方に依存するプロジェクトに取り組んでいます。
オブジェクトのコピーを作成する必要がある場合、その時の気分に応じてangular.copy()
、_.clone()
これらの方法のうちの 1 つは、おそらく他の方法よりも高速/信頼性/堅牢性が高いと思われます。
両方のライブラリがすでに含まれていると仮定した場合、これらの関数のいずれかに、他方よりも使い勝手が良い、または悪いという既知の問題はありますか?
ベストアンサー1
ご質問に関して:angular.copy と _.clone は異なります。どちらが優れているかという問題ではなく、@Kevin B がコメントで述べたように、何が必要かという問題です。
一方、angular.extend()は_.cloneに似た浅いコピーです。
パフォーマンスの面ではどちらが優れているかはわかりませんが、意見を述べると、Angularアプリでライブラリをグローバルスコープ(アンダースコア)に含めることには反対です。通常、これらのものは次のように記述されます。角度モジュールこの場合は、angular.copy/angular.extend が優先されます。
浅いコピー/深いコピー:
オブジェクトにプリミティブ フィールドしかない場合は、明らかに浅いコピーを選択しますが、オブジェクトに他のオブジェクトへの参照がある場合は、要件に基づいて浅いコピーまたは深いコピーを選択する必要があります。ここで私が言いたいのは、参照がいつでも変更されない場合は、深いコピーを選択しても意味がないということです。浅いコピーを選択できます。ただし、参照が頻繁に変更される場合は、深いコピーを選択する必要があります。繰り返しますが、厳格なルールはなく、すべて要件によって異なります。