2015-12-13 4 views
5

を使用して変数にオブジェクトを割り当てることによって、私は、Immutable.jsのドキュメントを見て、具体的には以下のよ:クローン新しいオブジェクトは、単にImmutable.js

var map1 = Immutable.Map({a:1, b:2, c:3}); 
var clone = map1; 

が、私はどのように単純にと混乱していますクローンにmap1を割り当てると、リファレンスではなくクローンが作成されますか?

更新: 「オブジェクトが不変である場合、それは可能な 『参照がオブジェクト自体よりもはるかに小さいのでドキュメントの状態は、単にそれを別の参照を行う代わりに、オブジェクト全体をコピーすることによって、』コピー。これにより、メモリを節約し、コピーに依存するプログラム(undo-stackなど)の実行速度を向上させる可能性があります。

私はこれをjsbinでテストしましたが、クローンは=== map1です。私は、文書内で「クローン」という言葉を使うのは少し誤解を招くと思います。

+0

渡されたオブジェクトの 'map1'はクローンではありませんか? –

答えて

2

Immutable.Mapは不変なので、クローニングの概念は時代遅れです。彼らのポイントは、クローニングについて気にする必要がないかどうかということです。問題ではありません。

ドキュメントは実際には混乱していますが、実際にはクローンではありません。クローニングの効果は、とにかく同じです。

関連する問題