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