Javascriptプロパティは、Cのように型指定されていないため、javascriptには純粋に「同等の」式はありません。Cコードのように型付きデータ構造を事前に宣言することはありません。javascriptで変数またはプロパティを指定すると、任意の値または参照を割り当てることができます。ハードタイピングはありません。したがって、Cのように特定の型のみを含むことができる変数がなければ、Cから含めたようなデータ構造定義の事前宣言はありません。
代わりに、ライブオブジェクトで使用するプロパティを宣言するだけです。または、それらの多くを使用する場合は、必要に応じてインスタンス化できるプロトタイプを作成できます。
最後の構造のようなライブオブジェクトインスタンスの直接宣言は、次のようになります。
var my = {
number: 10,
tmp: new Array(100),
tmp2: new Array(100)
};
これは、、、およびとmy
呼ばれる3つのプロパティを持つという名前のオブジェクトを宣言します。 最初は数値が含まれ、他の2つのプロパティには、値がである長さ100の配列が含まれていました。ループでコードを実行して初期化せずに、JavaScriptで2次元配列を事前定義するコンパクトな方法を知りません。number
tmp
tmp2
number
10
undefined
my.number
このデータ定義により、などにアクセスできるmy.tmp
ようになります。
配列にプロパティ自体を持つオブジェクトを含める場合は、それらの配列にオブジェクトを設定する必要があります。
var my = {
number: 10,
tmp: [{a: 1, c_str: "foo"}, {a: 2, c_str: "whatever"}],
tmp2: new Array(100)
};
または、コードで、次のようなコードを使用してtmp配列にアイテムを追加できます。
var my = {
number: 10,
tmp: [],
tmp2: []
};
my.tmp.push({a: 1, c_str: "foo"});
my.tmp.push({a: 2, c_str: "whatever"});
または、オブジェクトを個別に作成してから、配列に配置することもできます。
var obj = {}; // new empty object
obj.a = 1; // assign property
obj.c_str = "foo"; // assign property
my.tmp.push(obj); // put object into the array
obj = {}; // new empty bject
obj.a = 2;
obj.c_str = "whatever";
my.tmp.push(obj);
または、次のように各プロパティを個別に割り当てることができます。
my.tmp.push({}); // put empty object into the array
my.tmp[0].a = 1; // assign property to the object
my.tmp[0].c_str = "foo"; // assign property to the object
my.tmp.push({});
my.tmp[1].a = 2;
my.tmp[1].c_str = "whatever";
いずれの場合も、次のようにデータにアクセスできます。
console.log(my.tmp[0].a); // 1
console.log(my.tmp[0].c_str); // "foo"