ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript における参照渡しと値渡し: 関数呼び出しでオブジェクトとプリミティブはどのように動作するか?
JavaScript の参照渡しと値渡し
JavaScript は値渡しと参照渡しの両方のメカニズムを採用しています。数値や文字列などのプリミティブは値によって渡されます。つまり、呼び出された関数内でプリミティブのコピーが作成されます。対照的に、非プリミティブ、主にオブジェクトは参照によって渡されます。
オブジェクトの場合、コピーではなくオブジェクトへの参照が渡されます。これは、次の例に示すように、呼び出される関数の参照変数を変更しても呼び出し元の参照には影響しないことを意味します。
var a = { key: 'value' }; replace(a); // a still holds its original value update(a); // a's contents change
四角形関数との混同
質問の例には、my パラメーターを持つ入れ子関数の四角形が含まれています。このパラメータは最初は未定義ですが、関数内で定義されます。この設定の理由は、rectangle 関数とその内部領域関数の間でデータを共有する方法を提供することです。
my パラメーターは最初は Rectangle 関数内で定義されていませんが、参照によって渡されるオブジェクト参照です。 。そのため、rectangle 関数内で代入すると、area 関数が my パラメーターを直接受け取らない場合でも、rectangle 関数と area 関数の両方で変更できるオブジェクトへの新しい参照が作成されます。
以上がJavaScript における参照渡しと値渡し: 関数呼び出しでオブジェクトとプリミティブはどのように動作するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。