ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 変数の値 (参照ではない) を関数に渡すにはどうすればよいですか?

JavaScript 変数の値 (参照ではない) を関数に渡すにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-25 08:00:03
オリジナル
718 人が閲覧しました

How to Pass the Value (Not the Reference) of a JavaScript Variable to a Function?

JS 変数の値 (参照ではない) を関数に渡す方法

JavaScript などの動的言語では、変数は次のようになります。デフォルトでは参照によって渡されます。これは、関数内で変数に加えられた変更は、関数外の元の変数に反映されることを意味します。特定の状況では、この動作は望ましくないため、代わりに変数の値を関数に渡す必要がある場合があります。

最新のブラウザの場合は、let または const キーワードを使用してブロック スコープの変数を定義することを検討してください。

<code class="js">for (let i = 0; i < results.length; i++) {
  let marker = results[i];
  google.maps.event.addListener(marker, 'click', () => change_selection(i));
}</code>
ログイン後にコピー

このアプローチにより、ループの各反復で i 変数の新しいスコープが作成され、すべてのリスナーがループの最後で results.length の値を使用する問題が回避されます。

古いブラウザを使用している場合は、変数を関数パラメータとして渡して、ループの反復ごとに別のスコープを作成します。

<code class="js">for (var i = 0; i < results.length; i++) {
  (function (i) {
    marker = results[i];
    google.maps.event.addListener(marker, 'click', function() { 
      change_selection(i);
    }); 
  })(i);
}</code>
ログイン後にコピー

匿名関数を使用し、変数でそれを呼び出すことにより、最初の引数として、効果的に値渡しし、クロージャを作成します。これにより、各リスナーが i 変数の独自のコピーを持ち、リスナーの作成時の値を参照するようになります。

以上がJavaScript 変数の値 (参照ではない) を関数に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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