JavaScript での参照による変数の受け渡し
JavaScript には、他のプログラミング言語に存在する「参照による受け渡し」の概念がありません。ただし、オブジェクトを値で渡すことができ、関数でその内容を変更できるようになります。
値によるオブジェクトの受け渡し
関数内でオブジェクトの内容を変更するには、オブジェクトを渡します。それ自体をパラメータとして:
function alterObject(obj) { obj.foo = "goodbye"; } var myObj = { foo: "hello world" }; alterObject(myObj); console.log(myObj.foo); // "goodbye"
変更配列
配列の要素を変更するには、その数値インデックスを反復処理し、各セルを個別に更新します。
var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) arr[i] = arr[i] + 1;
JavaScript の「参照渡し」
JavaScript には真の「参照渡し」機能がありません。これは、C のような言語とは異なり、関数呼び出し内で元の変数の値を変更することができないことを意味します。
以下の例では、x と y の値は値によって渡され、交換できないため、これらの値の交換は失敗します。関数内で直接変更:
function swap(a, b) { var tmp = a; a = b; b = tmp; } var x = 1, y = 2; swap(x, y); console.log("x is " + x + ", y is " + y); // "x is 1, y is 2"
結論
while JavaScript は従来の意味での「参照渡し」を提供しておらず、オブジェクトを渡してその内容を操作することで、同様の機能が可能になります。この手法はオブジェクト参照自体ではなく、オブジェクトの内容を変更することに注意してください。
以上がJavaScript は変数の受け渡しとオブジェクトの変更をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。