ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の値渡しメカニズムは関数内のプリミティブ変数とオブジェクト変数にどのような影響を与えますか?
JavaScript の参照渡しと値渡しを理解する
JavaScript では、関数に渡されるパラメーターは常に値によって渡されます。これは、元の値のコピーが作成され、元の値はコピーに加えられた変更の影響を受けないことを意味します。ただし、値がオブジェクト (配列を含む) の場合、作成されるコピーは元のオブジェクトへの参照になります。
この概念は、変数が関数内で変更されるときの動作に影響します。
例:
function f(a, b, c) { a = 3; // Re-assigns a to a new primitive value b.push("foo"); // Adds a new property to b, modifying the referenced object c.first = false; // Modifies a property of the referenced object }
この例では、x、y、関数の外側の z は次の値になります。x は 4 (プリミティブ値) のままで、y には追加プロパティ ["foo"] (オブジェクト プロパティが追加されました) が追加されます。
オブジェクトの完全に独立したコピーを作成するには、そのすべてのプロパティを新しいオブジェクトに明示的にコピーする必要があります。これは、Object.assign() メソッドを使用するか、オブジェクトを走査し、古いプロパティに基づいた新しいプロパティを持つ新しいオブジェクトを作成することによって実行できます。
以上がJavaScript の値渡しメカニズムは関数内のプリミティブ変数とオブジェクト変数にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。