ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で参照渡しをシミュレートするにはどうすればよいですか?

JavaScript で参照渡しをシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-01 02:36:11
オリジナル
418 人が閲覧しました

How Can I Simulate Pass-by-Reference in JavaScript?

JavaScript で変数を参照によって渡す方法

変数を参照によって渡すと、関数は呼び出しコンテキストで元の変数を変更できます。 JavaScript には真の参照渡しはありませんが、同様の機能を実現する方法が用意されています。

オブジェクトの受け渡し

オブジェクトの内容を変更するには、オブジェクトの内容を値で関数に渡します。以下の例に示すように、JavaScript ではオブジェクトのプロパティを変更できます:

function alterObject(obj) {
  obj.foo = "goodbye";
}

var myObj = { foo: "hello world" };

alterObject(myObj);

alert(myObj.foo); // "goodbye"
ログイン後にコピー

配列の変更

数値インデックスを使用して配列プロパティを反復処理して、個々のセルを変更します:

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) {
    arr[i] = arr[i] + 1;
}
ログイン後にコピー

真の参照渡しを試みています (不可能)

true であることに注意してください参照渡し (呼び出しコンテキスト内の単純な変数の変更) は、JavaScript では不可能です。次の例は、この概念を示しています。

function swap(a, b) {
  var tmp = a;
  a = b;
  b = tmp;
}

var x = 1, y = 2;
swap(x, y);

alert("x is " + x + ", y is " + y); // "x is 1, y is 2"
ログイン後にコピー

C とは異なり、JavaScript は、関数が呼び出しコンテキスト内の単純な変数を変更できる真の参照渡しをサポートしていません。代わりに、JavaScript では変更可能なオブジェクトへの参照のみを渡すことができます。これにより、オブジェクトの内容は変更されますが、参照は変更されません。

以上がJavaScript で参照渡しをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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