このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

JavaScript 代入と参照

JavaScript

2011.09.06

この記事は最終更新日から1年以上が経過しています。

JavaScript 代入と参照

「book1 = new Object()」を説明したときは

「変数book1にObjectオブジェクトを代入」ではなく
「Objectオブジェクトのインスタンスを参照する」となります。

「代入 ではなく 参照」

<script type="text/javascript">book1 = new Object();
book1.price = 1280;
book2 = book1; //book2でbook1を参照
book2.price = 1680;
document.write("価格は、" + book1.price + "円です。<br>");
</script>

結果

価格は、1680円です。

変数に数値や文字列を代入した場合は、その中に数値や文字列がコピーされます。

参照の場合は、変数の中にオブジェクトがコピーされるわけではなく、

変数はメモリ上にどこかにあるオブジェクトのインスタンスを指します。

 

上記の例では、book1とbook2は別の変数ですが、「book2 = book1」によって、同じインスタンスを参照しております。

従って、book2のpriceプロパティを変更するとbook1のpriceプロパティも変更されるのです。


参照と比較演算子

変数がオブジェクトのインスタンスを参照している場合は、比較演算子「==」に注意!!
参照先が同じ場合は「正しい」違う場合は「正しくない」になります。

次の例は、str1 str2の持つ文字列は同じですが newを2回使って別々にインスタンスを

作っているので、参照先は別です。「==」の結果は「それらは違います」になります。

str1 = new String("web帳");
str2 = new String("web帳");
if(str1 == str2) document.write("それらは同じです。");
else document.write("それらは違います。")

次の例はstringオブジェクトのインスタンスと文字列型を比較した場合は、

stringオブジェクトは自動的に文字列に変換されるので、「==」の結果は「それらは同じです。」になります。

str1 = new String("web帳");
str2 = "web帳";
if(str1 == str2) document.write("それらは同じです。");
else document.write("それらは違います。")

Comment

Related Article

JavaScriptで、DOMを放り投げる処理

2024.07.27

2022 VIVA JS World Cup 開幕!! 〜 Vue3で作るサッカーゲーム 〜

2022.12.24

OAuthのフローを可視化できるツールを作ってみました。

2020.05.17

令和の時代に、JavaScriptで Shift-JISファイル作成 全銀データフォーマットに対応する。

2020.03.03

インターネットにて世論調査を行う「世論Web」サービスを始めてみました。

2020.01.31

年末のレトロゲーム熱の際、ファミコンソフト一覧パッケージ作ってました。

2020.01.24

あと10日で「jsdo.it」のサービスが終わってしまう!! ソースダウンロードまだの方は急げぇ〜!

2019.10.21

正規表現 先読み後読み 論理積

2019.07.28

「二段階認証?」という方も 5分で覚える パスワードレス WebAuthnのまとめ

2019.07.07

上級者向け JavaScript 問題集 「javascript-questions」日本語翻訳担当してます。

2019.06.22

CATEGORY LIST

LATEST NEWS

アーキテクチャConference 2024に参加してきました。

イベント

2024.11.28

Mac minicomでシリアル通信を行う

電子工作

2024.11.21

Mac 容量足りない問題は、外付けSSDで快適に解決!おすすめ外付けSSD

mac

2024.10.16

Z80エミュレータ- EMUZ80の組み立て

電子工作

2024.10.13

Mac VSCodeで、SFML C++開発環境を作る。

C++

2024.09.09

Rust-SDL2 examplesをすべて試す

Rust

2024.09.01

JavaScriptで、DOMを放り投げる処理

JavaScript

2024.07.27

Rustで創る MOS 6502 CPU その2

Rust

2024.07.23

Rustで創る MOS 6502 CPU その1

Rust

2024.07.19

汎用 3D mesh/model viewerを求め。と、簡単に、FBXファイルをglTF(glb)に変換ツールを求め。

C++

2024.06.06

M1 Macで、OpenGL GLUTを使ってコンパイルする

C

2024.04.27

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US