JavaScript でオブジェクトを作成するにはいくつかの方法があります:
(1) 組み込みオブジェクトを使用する
(2) JSON シンボルを使用する
(3) カスタム オブジェクトの構築
1.組み込みオブジェクトの使用
JavaScript で使用できる組み込みオブジェクトは、次の 2 つのタイプに分類できます:
1、JavaScript 言語のネイティブ オブジェクト (言語レベルのオブジェクト) (String、Object など) 、関数など;
2 、ウィンドウ、ドキュメント、ボディなどの JavaScript ランタイムのホスト オブジェクト (環境ホストレベルのオブジェクト)。
組み込みオブジェクトの使用とは、JavaScript 言語のネイティブ オブジェクトの構築メソッドを通じて新しいオブジェクトをインスタンス化することを指します。例:
var str = new String( "インスタンス初期化文字列 ");
var str1 = "直接割り当てられた文字列";
var func = new Function("x","alert(x)");//初期化関数の例
var o = new Object ();//オブジェクトを初期化する例
2. JSON シンボルを使用します (i)
JSON とは? (JavaScript オブジェクト表記) つまり、JavaScript オブジェクトの命名は、読み取りと書き込みが簡単で、解析と生成も簡単な軽量のデータ交換形式です。これは、「JavaScript プログラミング言語、標準 ECMA-262 第 3 版 - 1999 年 12 月」のサブセットに基づいています。 JSON は完全に言語に依存しないテキスト形式であるため、データ交換に理想的な形式です。
JSON は、JavaScript のコンポーネントとして、ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、 Rebol、Ruby、Lua などがサポートされているため、JSON が Ajax 開発に推奨されるソリューションになります。
JSON を構築するには 2 つの方法があります。1 つは、さまざまな言語でオブジェクト、レコード、構造、辞書、ハッシュ テーブル、キーとして理解される「キーと値のペア」の単純なコレクションを使用する方法です。リスト、または連想配列など。もう 1 つは、ほとんどの言語で配列として理解される、順序付けられた値のリストを使用します。
一般的に使用される作成方法は最初の方法で、「キーと値のペア」のコレクションの形式です。この形式では、オブジェクトは「{」(左括弧) で始まり、「}」(右括弧) で終わります。各「名前」の後には「:」 (コロン) が続き、「キー/値」のペアは「,」 (カンマ) で区切られます。
JSON には次のような特徴があります: (1) シンプルな形式のデータ交換、(2) 人が読み書きしやすい、(3) 機械の分析と操作が簡単。
JavaScript では、JSON はオブジェクトとして理解されます。文字列形式の JSON を通じて、データを JavaScript に簡単に解析し、読み取って渡すことができます。 JSON を使用すると、JavaScript オブジェクトをシリアル化してパラメーターとして渡すことができないという問題がある程度解決されます。
1、単純な JSON
{名前:"Andy Lau"、年齢:"25"、性別:"男性"}
2、JSON 値のタイプ
JSON 値には、数値、浮動小数点、文字などの単純なデータ型、または配列やオブジェクトを使用できます。たとえば、メンバー キー値として配列を含む JSON:
{member:[{name:"Andy Lau"},{name:"Aaron Kwok"},{name:"Jacky Cheung"}, {name:"暁" }]}
{
book:[{name:『三國志』},{name:『西遊記』},{name:"水マージン"},{name:"紅楼夢"} ],
著者:[{name:"羅冠中"},{name:"ウー・チェンゲン"},{name:"シー・ナイアン",{ name:"Cao Xueqin"}}]
}
3. JavaScript での JSON の使用
JSON は JavaScript ネイティブ形式です。つまり、JavaScript での JSON データの処理には何も必要ありません。特別な API またはツールキット。JavaScript はデフォルトで JSON をオブジェクトとして扱います。
オブジェクトを変数に渡します。例:
var somebooks = {
book:[{name:『三国志』},{name:『西遊記』},{name:『水滸伝』}, {name:"紅楼夢"}]、
著者:[{name:"羅冠中"}、{name:"呉承源"}、{name:"シー・ナイアン"、{name:"曹操Xueqin"}}]
}
JSON の各「キー」は、オブジェクトの属性に相当します。たとえば、本の最初のエントリにアクセスするには、JavaScript で次のようにします。 「somebooks.book[0].name」を使用して、「三國志」のこの値を取得するだけです。
JSON 文字列をオブジェクトに変換するだけでなく、オブジェクトを JSON 文字列に「コンパイル」して、JavaScript でのオブジェクトの送信を容易にすることもできます。例:
var Animals = new Object( );
Animals.name = "犬";
Animals.年齢 = "2";
Animals オブジェクトをシリアル化して送信することはできません。Animals オブジェクトを JSON 文字列、つまり "{name:"dog",sex:" Male",age:"2"}" に変換します。このようにして、JSON 文字列が HTTP リクエストのパラメータとして渡され、Animals オブジェクトをシリアル化して送信するという目的が達成されます。
(ii) JSON は JavaScript オブジェクトを文字列形式で表現します。例:
var myObject = {nickname: "my girlfried" ,name:"big pig"};
JSON は、実際には JavaScript オブジェクトと文字列の間で変換するためのプロトコルとして機能します。 JSON の「見た目」は文字列として見えるため、JSON は JavaScript オブジェクトの送信において一定の役割を果たすことができます。たとえば、オブジェクト strObject を文字列に変換して送信し、宛先に到達した後に eval メソッドを通じてオブジェクトに復元します。
function test (o)
{
alert (o.name)
}
var strObject = ' {ニックネーム:「私のガールフレンド」、名前:「ビッグブタ」}';
test (eval("(" strObject ")"));
3. construction 高度なオブジェクト構築を作成するには、「this」キーワード構築を使用する方法と、プロトタイプ プロトタイプ構築を使用する方法の 2 つがあります。例:
//このキーワードを使用して、構築のコンテキストを定義します。 属性
function Girl()
{
this.name = "big pig";
this.standing; .bust;
this.waist;
this.hip>}
//プロトタイプ
function Girl(){}
Girl.prototype.name;ビッグブタ";
Girl.prototype.age = 20;
Girl.prototype.standing;
Girl.prototype.bust;
Girl.prototype.waist;
Girl.prototype.hip ;
alert( new Girl().name);
上記の例の 2 つの定義には本質的に違いはありません。どちらも「Girl」オブジェクトの属性情報を定義します。 「this」と「prototype」の違いは主に属性アクセスの順序にあります。例:
{
this.text = function()
{
alert("this で定義されている");
}
}
Test.prototype.test = function()
{
alert("プロトタイプで定義された");
}
var _o = new Test();
_o.test();//「これで定義された」を出力します
オブジェクトのプロパティまたはメソッドにアクセスするときは、プロトタイプ チェーンを検索するためのルールに従います。最初に独自の静的プロパティとメソッドを探し、次に構築コンテキストのアクセス可能なプロパティとメソッドを探し、最後に構築のプロトタイプ チェーンを探します。
「これ」と「プロトタイプ」の定義のもう 1 つの違いは、属性が異なるスペースを占めることです。この例では、「this」キーワードを使用して、各インスタンスのコンストラクターに含まれるすべてのプロパティとメソッドに必要なスペースを初期化し、「prototype」定義を使用します。これは、「prototype」は実際には親への参照であるためです。データのコピーなので、「これ」よりも初期化と保存のリソースが節約されます。