JavaScript オブジェクトのソースを表示
新しいページはコチラ
移動:
案内
,
検索
[[JAVA Script#リファレンス]]に戻る。 == 宣言 == *objName1 = new Object; *objName1 = new Object(); :上記のように記述することでobjName1は空のオブジェクトになります。空といってもObject自体にはいくつかの機能がありますので、objName1にはObjectにぶら下がっている関数やプロパティ値が保持されます。例えば、どのようなプロパティ値があるのかを示すようなサンプルを以下にしめします。 サンプル <syntaxhighlight lang="javascript" line start="1"> <HTML> <HEAD> <TITLE>JavaScript 宣言</TITLE> </HEAD> <BODY> JavaScript 宣言<br /> <SCRIPT Language="JavaScript"> <!-- objName1 = new Object(); objName2 = new Object("newって使わない方がいいんじゃね?"); document.write("■Object.__proto__<br />"); document.write(Object.prototype === objName1.__proto__, "<br />"); document.write(objName1, "<br />"); document.write(String.prototype === objName2.__proto__, "<br />"); document.write(objName2, "<br />"); for(var key in objName2){ document.write("key = ", key , ", Value = ", objName2[key] ,"<br />"); } --> </SCRIPT> </BODY> </HTML> </syntaxhighlight> [[Media:JavaScript Object declare.html|実行結果サンプル]] 例えば、objName1.__proto__のようなプロパティがあります。このプロパティにはnewキーワードで生成されたオブジェクトのObject.prototypeプロパティ値と同じ値が保持されるものです。objName1自体を出力した場合でも[object Object]のように出力されるのは、prototypeの紐づけが__proto__に格納されているために起こります。サンプルでは、__proto__値は文字として出力はできるような構造ではないため、同じ値になっているかどうかを比較した結果を出力するようにしています。newで生成する際に初期値として文字列を設定したobjName2は自動的にStringオブジェクトと同じ構造が保持されていて、その構造がStringオブジェクトと同等にふるまいます。出力結果はそのことを確認できるものになっています。 このようにObjectには空のObjectでも何かしらの構造を保持していることがわかりましたが、__proto__というイマイチよく理解できないような複雑なプロパティをもっていることもわかってしまいました。この__proto__やprototypeのようなプロパティの仕組みを詳細に解説しようとするとかなり長くなってしまいますが、この複雑さの理解を助けるような記事にするべく、引き続きオブジェクトについての記事を記述していきたいと思います。 == constructor == *objName1.constructor :上記のようなプロパティを記述することでobjName1の生成元が返されます。ようするにサンプルのとおりになります。先のサンプルに☆☆☆マークで明記した部分が追加した処理になります。 サンプル <syntaxhighlight lang="javascript" line start="1"> <HTML> <HEAD> <TITLE>JavaScript constructor</TITLE> </HEAD> <BODY> JavaScript constructor<br /> <SCRIPT Language="JavaScript"> <!-- function funcName(){ funcName.nValue = 1; } objName1 = new Object(); objName2 = new Object("newって使わない方がいいんじゃね?"); document.write("■Object.__proto__<br />"); document.write(Object.prototype === objName1.__proto__, "<br />"); document.write(objName1, "<br />"); document.write("<br />"); document.write("☆☆☆<br />"); document.write(objName1.constructor, "<br />");//☆☆☆ document.write("☆☆☆<br />"); document.write("<br />"); document.write(String.prototype === objName2.__proto__, "<br />"); document.write(objName2, "<br />"); for(var key in objName2){ document.write("key = ", key , ", Value = ", objName2[key] ,"<br />"); } --> </SCRIPT> </BODY> </HTML> </syntaxhighlight> [[Media:JavaScript Object constructor.html|実行結果サンプル]] == prototype == *Object.prototype.dateToday = "2016/02/23"; :上記のようにすることで、ObjectというオブジェクトにdateTodayというプロパティが作成されると同時に値として文字列の2016/02/23が格納される。したがって、Objectという空のオブジェクトを保持するオブジェクトobjName1のようなオブジェクトにはobjName1.dateTodayというプロパティの参照や値の入れ替えが可能となる。 サンプル <syntaxhighlight lang="javascript" line start="1"> <HTML> <HEAD> <TITLE>JavaScript prototype</TITLE> </HEAD> <BODY> JavaScript prototype<br /> <SCRIPT Language="JavaScript"> <!-- function funcName(){ funcName.nValue = 1; } objName1 = new Object(); objName2 = new Object("newって使わない方がいいんじゃね?"); document.write("■Object.__proto__<br />"); document.write(Object.prototype === objName1.__proto__, "<br />"); document.write(objName1, "<br />"); document.write("<br />"); document.write("☆☆☆<br />"); Object.prototype.dateToday = "2016/02/23"; document.write(objName1.dateToday, "<br />"); document.write("☆☆☆<br />"); document.write("<br />"); document.write(objName1.constructor, "<br />"); document.write(String.prototype === objName2.__proto__, "<br />"); document.write(objName2, "<br />"); for(var key in objName2){ document.write("key = ", key , ", Value = ", objName2[key] ,"<br />"); } --> </SCRIPT> </BODY> </HTML> </syntaxhighlight> [[Media:JavaScript Object prototype.html|実行結果サンプル]] == 記事作成用テンプレート == サンプル <syntaxhighlight lang="javascript" line start="1"> </syntaxhighlight> [[Media:JavaScript Object yoobidashi.html|実行結果サンプル]] [[JAVA Script#リファレンス]]に戻る。
JavaScript オブジェクト
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ