JavaScript でパラメータは値によって渡されますか?それとも参照によって渡されますか?
P粉394812277
2023-08-21 15:57:16
<p>プリミティブ型 (数値、文字列など) は値によって渡されますが、オブジェクトは両方とも値によって渡されるため不明です (この場合、オブジェクトを保持する変数は実際にはオブジェクト参照であると考えられます)。参照によって渡すこともできます (この場合、変数はオブジェクト自体を保持するとみなします)。 </p>
<p>最終的には問題ではありませんが、パラメータ受け渡し規約を正しくレンダリングする方法を知りたいと思っています。これに関するセマンティクスがどうあるべきかを定義する JavaScript 仕様からの抜粋はありますか? </p>
JavaScript は楽しいです。次の例を考えてみましょう:
これにより、次の出力が生成されます:
リーリーがまったく参照ではない場合、##obj1.item
を変更しても、関数の外部のobj1
には影響しません。100
になり、obj2.item
は"changed"
になります。代わりに、num
は10
のままで、obj2.item
は"unchanged
" のままです。と呼ばれます。 実際的には、パラメータ自体 (
numや
obj2
など) を変更しても、パラメータに渡される項目には影響しないことを意味します。ただし、パラメータの内部を変更すると、それが反映されます (obj1
など)。