ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript における参照渡しと値渡し: 関数呼び出しでオブジェクトとプリミティブはどのように動作するか?

JavaScript における参照渡しと値渡し: 関数呼び出しでオブジェクトとプリミティブはどのように動作するか?

DDD
リリース: 2024-12-20 21:44:09
オリジナル
146 人が閲覧しました

Pass-by-Reference vs. Pass-by-Value in JavaScript: How Do Objects and Primitives Behave in Function Calls?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート