JavaScript は参照渡し言語ですか、それとも値渡し言語ですか?
P粉450744515
2023-08-23 18:58:12
<p>プリミティブ型 (数値、文字列など) は値によって渡されますが、オブジェクトはすべて値によって渡されるため不明です (この場合、オブジェクトを保持していると思われる変数は実際にはオブジェクトへの参照です)。参照渡し (オブジェクトの変数がオブジェクト自体を保持していると考える場合)。 </p>
<p>最終的には問題ではありませんが、パラメーター受け渡し規約を提示する正しい方法は何なのか知りたいと思っています。これに関連するセマンティクスを定義する JavaScript 仕様からの抜粋はありますか? </p>
JavaScript は楽しいです。次の例を考えてみましょう:
これにより、出力が生成されます:
リーリーがまったく参照ではない場合、
obj1.itemを変更しても関数の外部の
obj1には影響しません。
は
100となり、
obj2.itemは
"changed"となります。代わりに、
numは
10のままになり、
obj2.itemは
"unchanged" のままになります。
共有通話 と呼ばれます。
実際には、パラメータ自体 (num
や
obj2など) を変更しても、スコープへの入力には影響しないことを意味します。ただし、パラメータの
inner を変更すると、上方向に伝播します (obj1と同じ)。