【javascript】オブジェクトデータのコピー

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

javascriptを使っていくと、JSONでデータを構築しておいて、使い回して、値を少しずつ変更していく・・・ような
事って結構便利にできるんだが、コピーするのがオブジェクトの場合、コピー後にとんでもないトラブルになるケースがある。

それは、コピー後に、オブジェクト内のデータを修正しようもんなら、元のオブジェクトのデータが修正されてしまって、
さらにそれを別の箇所にコピーしていようものなら、結果がとんでもない事になることが想像できると思う。

結果:a = {test1:100,test2:2,test3:3,test4:{aa:”a”,bb:”b”}}

これは、javascriptがprototypeっちゅうめんどくさい中核で構成されているため、というとわけわからなくなるんだけど、スピードと効率を考えて、変数は出来る限り参照する形をとっている為だと思われる。

解決法としては、全てのデータをパースして、オブジェクトではなく、変数状態でコピーを行うようにする関数を作ってもいいし、jQueryのextend関数を使うという手もある。

でも、もっとも簡単に解決出来る方法を見つけた!!

とするだけなのだ!!!

これ簡単、便利、関数にしなくてもいいぐらい楽!!

デメリットとしては、旧ブラウザバージョンでどのくらい動くかは不明。
とにかくchromeでは正常に動いた。

あと、オブジェクトの内部にfunctionが存在する場合に正常にparseでfunctionが動作するか不明。※だれか試してくれ。

ちなみに、書いてあったサイトはココです

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です