JavaScript で、連想配列 a を b に代入し、a の内容を変更すると、なぜ b も変更されるのでしょうか?

WBOY
リリース: 2016-08-23 09:17:45
オリジナル
1906 人が閲覧しました

リーリー

JavaScript で、連想配列 a を b に代入し、その後 a の内容を変更すると、なぜ b も変更されるのですか?

返信内容:

リーリー

JavaScript で、連想配列 a を b に代入し、その後 a の内容を変更すると、なぜ b も変更されるのですか?

配列 (文字列、整数、ブール値) などの非通常型の場合、代入はアドレスのコピーと同等です。つまり、a と b は同じアドレスを占有します。したがって、b が変更されると、a も変更されます。基本的に、a と b は同じものです。

この回答はより詳細です。配列は参照型の値であり、ヒープに保存されます。 https://www.zhihu.com/questio...

JS で値を割り当てるとき、元の型 (文字列など) はコピーされた値であり、参照型 (連想配列など) はコピーされた参照であると誰かが言っているのをインターネットで見ました。

リーリー

JS 配列は、PHP が「コピーオンライト」宣言を使用した参照割り当てをサポートしているほど柔軟ではないと感じます。 リーリー

a と b は両方とも同じ配列を指しているためです。

変更しないでおきたい場合は、まずオブジェクトを文字列に変換し、次にオブジェクトに変換し直します。これらは 2 つの異なるオブジェクトになります。直接使用すると、実際には 1 つになります。正しい答えは上に示されています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!