新しいネタがあっても、書く気力と時間がなかっただけです。表記の件行ってみよう。参照型言語である、JavaScriptにおいては、このディープコピーっていうのはたいそう難しい。他にも、再起的にプロパティを潜っていき、新しくオブジェクトを作成し、再度新しい値の参照として同名プロパティを定義していく、という下記の方法がある。配列なら配列、と定義した方が手っ取り早い。Object.keys(obj).forEachとかでもよし。r;}だが、この方法、最大の欠点があり、それが多くのデベロッパーを苦しませた。上記の方法だと、クラスメソッド(prototypeで定義したメソッド)は引き継がれないのである。参照不可のクラスメソッドは消滅してしまう。functionこれは、prototype構文を使ったとしても同様で、(JSのクラスはprototypeの糖衣だからね)prototypeメソッドは、引き継げない。オブジェクトのプロトタイプ汚染をなるたけ防ぐためと思われる。けっこうな場合は、インスタンスのコピーという形で、メソッドは実行したい、とはなるだろう。実は、__proto__属性を使えば案外さっくり実装できるのだが、いかんせん、__proto__属性は現在非推奨となっている。MDN)メソッドのコピーは泣き寝入りするしかないか・・・?そんなことはない。Object.createをうまく使うことによって、汎用的にオブジェクトのディープコピーをすることができるのだ。IEはアロー関数が使えないので、下記のようにするといいだろう。Object.keys(obj).forEachとかでもよし。r;}Object.createメソッドは、第一引数のオブジェクトをプロトタイプとした新しいオブジェクトを返すメソッドだ。よって、コピー元のオブジェクトのコンストラクターをプロトタイプとすることによって、同じクラスからインスタンスを生成できる、って寸法だ。あとは、従来の再起実行を持って、各プロパティに潜って、値を別参照で定義していけばいい。さぁ、これで、JSでの大規模開発も本格的にできるぜよ。SafariでMP4動画が再生できない問題を解決>>サブコンテンツ当サイトは、HTML5の規格に準拠しております。