destination[property] = DeepCopy(destination[property] || {}, copy);
else
; >}
戻り先 🎜>
コードは次のとおりです。 >var b=new Object;
DeepCopy (b,a);
alert(b.x);//プロンプト 5
alert(b.y);//プロンプト 3
b.x=8; >alert(a.x);//プロンプト 5
ほら、b.x を変更しても a.x には影響しませんよね?
この DeepCopy は良い機能です。
上記は、オブジェクト型のシミュレートされた「値による受け渡し」を実装しています。
では、基本的なデータ型の「アドレスによる受け渡し」をどのようにシミュレートできるでしょうか?
Array オブジェクトを使用するだけです。
関数変更(a)
{
a[0]=5;
alert(a); // ヒント 5
}
var x=[3]; // ヒント 3
change( x);
alert(x); // ヒント 5
[xx] を割り当てることは、実際には Array オブジェクトにデータを割り当てることです。ここでは、1 つの要素を含む配列を使用してアドレス転送をシミュレートします。配列はオブジェクト型なので、渡す際はアドレスで渡します。
もちろん、任意のオブジェクト タイプのプロパティを使用してシミュレートすることもできます。