JavaScript のオブジェクトまず JavaScript のオブジェクトについです こんな感じですよね 配列は数字がキーになってるオブジェクトで 数字はプリミティブ値です また __proto__ を使ったプロトタイプチェーンがあります オブジェクト自身がそのキーを持っていない場合は __proto__ の先にあるオブジェクトを探します そこでもなければ またその先の __proto__ からとずっと繰り返しです オブジェクトをクローンする場合では __proto__ はたどる必要ないと思います クラスのような使い方するためのものでオブジェクト自身の値とはまた別物で 共通の値を入れるものでここをクローンするのはおかしな気がします 必要なら __proto__ の先を変更するだけでいいと思います ライトなコピー配列で slice を使うと参照は参照のままコピーします var frien