ホームページ  >  に質問  >  本文

JavaScript は参照渡しまたは値渡しを使用する言語ですか?

プリミティブ型 (数値、文字列など) は値によって渡されますが、オブジェクトはすべて値によって渡されるため不明です (この場合、オブジェクトを保持する変数は実際にはオブジェクト参照のペアであると考えられます) ) および参照渡し (オブジェクトの変数がオブジェクト自体を保持していると考える場合)。

最終的にはどうでもいいのですが、パラメータの受け渡し規約をどのように表現するのが正しいのか知りたいです。これに関連するセマンティクスを定義する JavaScript 仕様からの抜粋はありますか?

P粉002546490P粉002546490374日前675

全員に返信(1)返信します

  • P粉195402292

    P粉1954022922023-10-12 10:04:53

    JavaScript は楽しいです。次の例を考えてみましょう:

    リーリー

    これにより、出力が生成されます:

    リーリー
    • obj1 がまったく参照ではない場合、obj1.item を変更しても関数の外部の obj1 には影響しません。
    • パラメータが正しい参照であれば、すべてが変わります。
    • num100 となり、obj2.item"changed" となります。代わりに、num10 のままになり、obj2.item"unchanged" のままになります。
    代わりに、受信アイテムが値によって渡されるという状況になります。ただし、値によって渡される項目はそれ自体が参照です。 技術的には、これは

    共有通話 と呼ばれます。

    実際には、パラメータ自体 (

    numobj2 など) を変更しても、スコープへの入力には影響しないことを意味します。ただし、パラメータの inner を変更すると、上方向に伝播します (obj1 と同じ)。

    返事
    0
  • キャンセル返事