Angular.copy() と _.clone() のどちらを使うべきですか? 質問する

Angular.copy() と _.clone() のどちらを使うべきですか? 質問する

私は Angular と Underscore の両方に依存するプロジェクトに取り組んでいます。

オブジェクトのコピーを作成する必要がある場合、その時の気分に応じてangular.copy()_.clone()

これらの方法のうちの 1 つは、おそらく他の方法よりも高速/信頼性/堅牢性が高いと思われます。

両方のライブラリがすでに含まれていると仮定した場合、これらの関数のいずれかに、他方よりも使い勝手が良い、または悪いという既知の問題はありますか?

ベストアンサー1

ご質問に関して:angular.copy と _.clone は異なります。どちらが優れているかという問題ではなく、@Kevin B がコメントで述べたように、何が必要かという問題です。

一方、angular.extend()は_.cloneに似た浅いコピーです。

Angular.copy と Angular.extend

パフォーマンスの面ではどちらが優れているかはわかりませんが、意見を述べると、Angularアプリでライブラリをグローバルスコープ(アンダースコア)に含めることには反対です。通常、これらのものは次のように記述されます。角度モジュールこの場合は、angular.copy/angular.extend が優先されます。

浅いコピー/深いコピー:

オブジェクトにプリミティブ フィールドしかない場合は、明らかに浅いコピーを選択しますが、オブジェクトに他のオブジェクトへの参照がある場合は、要件に基づいて浅いコピーまたは深いコピーを選択する必要があります。ここで私が言いたいのは、参照がいつでも変更されない場合は、深いコピーを選択しても意味がないということです。浅いコピーを選択できます。ただし、参照が頻繁に変更される場合は、深いコピーを選択する必要があります。繰り返しますが、厳格なルールはなく、すべて要件によって異なります。

ソース

おすすめ記事