検索

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

JavaScript でパラメータは値によって渡されますか?それとも参照によって渡されますか?

<p>プリミティブ型 (数値、文字列など) は値によって渡されますが、オブジェクトは両方とも値によって渡されるため不明です (この場合、オブジェクトを保持する変数は実際にはオブジェクト参照であると考えられます)。参照によって渡すこともできます (この場合、変数はオブジェクト自体を保持するとみなします)。 </p> <p>最終的には問題ではありませんが、パラメータ受け渡し規約を正しくレンダリングする方法を知りたいと思っています。これに関するセマンティクスがどうあるべきかを定義する JavaScript 仕様からの抜粋はありますか? </p>
P粉394812277P粉394812277461日前573

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

  • P粉426906369

    P粉4269063692023-08-22 13:30:26

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

    リーリー

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

    リーリー
    • #obj1 がまったく参照ではない場合、##obj1.item を変更しても、関数の外部の obj1 には影響しません。 引数が正しい参照であれば、すべてが変わります。
    • num
    • 100 になり、obj2.item"changed" になります。代わりに、num10 のままで、obj2.item"unchanged" のままです。
    • 実際には、渡される項目は値によって渡されます。ただし、値によって渡される項目自体は参照です。 技術的には、これは
    共有通話

    と呼ばれます。 実際的には、パラメータ自体 (

    num

    obj2 など) を変更しても、パラメータに渡される項目には影響しないことを意味します。ただし、パラメータの内部を変更すると、それが反映されます (obj1 など)。

    返事
    0
  • キャンセル返事