// 封装 関数クローン(OBJ){ // 3つの単純型、ヌルまたは未定義ハンドル 場合(ヌル == OBJ || " オブジェクト" =!typeof演算の OBJ)戻りOBJを、 // ハンドル日 の場合(OBJのinstanceof日){ VARのコピー= 新しい日付(); copy.setTime(obj.getTime())。 戻り値のコピー。 } // 配列ハンドル 場合(OBJのinstanceofアレイ){ VARのコピー= []; にとって(VAR I = 0 ; I <obj.length; ++ I){ コピー[I] = クローン(OBJ [I])。 } 戻りコピー。 } // ハンドルオブジェクト 場合(オブジェクトOBJのinstanceof){ VARのコピー= {}; 用(VARの ATTR でOBJ){ 場合(obj.hasOwnProperty(ATTR))コピー[ATTR = クローン(OBJ [ATTR])。 } 戻りコピー。 } スロー 新しい(エラー」OBJをコピーすることができません!そのタイプがサポートされていません。" ); }; // 调用 VAR ARR = [ 1、2、3、5 ]; VARの AA = クローン(ARR) はconsole.log(AA) はconsole.log(ARR); VAR物体1 = { " 優":1、" よ":2 }; VARの OBJ1 = クローン(物体1) にconsole.log(物体1) にconsole.log(OBJ1); VAR DTA = 新しい日付(); VaRの QQ = クローン(DTA)。 console.log(DTA)。 console.log(QQ)。