オブジェクト
提供: Node.js/JavaScript入門
2014年8月30日 (土) 15:50時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「名前を付けられた値を集めたものをオブジェクト(Object)と呼びます。個々のデータ値をそのオブジェクトのプロパティを呼...」)
スポンサーリンク
名前を付けられた値を集めたものをオブジェクト(Object)と呼びます。個々のデータ値をそのオブジェクトのプロパティを呼びます。
読み方
- オブジェクト
- おぶじぇくと
- Object
- おぶじぇくと
目次
概要
JavaScriptを書く上で、オブジェクトは重要な存在です。 JavaScript は、すべてオブジェクトです。 オブジェクトの実装は、HashMap(連想配列)です。
オブジェクトの生成
オブジェクトの生成には、コンストラクタ関数が使用されます。
var obj = new Ojbect(); var now = new Date();
生成したオブジェクトには、好きなプロパティを設定できます。
var obj = new Ojbect(); obj.x = 1; obj.y = 2;
オブジェクトリテラル
オブジェクトリテラルは、以下の形式で定義します。
{プロパティ1:値, プロパティ2:値}
オブジェクトのプロパティをあらかじめ定義できます。オブジェクトリテラルは、オブジェクトイニシャライザとも呼ばれます。
以下のコードは、プロパティを持たないオブジェクトを作成します。
var obj = {};
プロパティを2つ持つオブジェクトを生成します。
var data = { x:1, y:2 };
オブジェクトリテラルは、入れ子にできます。
var data = { x:{x:1,y:2,z:3} , y:{x:1,y:2,z:3} };
オブジェクトリテラルのプロパティ名には、文字列も使用できます。
var data = { "foo" : 123 };
プロパティを参照する方法
プロパティの参照は、名前を指定して参照する方法とループを回す方法があります。
プロパティの単純な参照
プロパティの参照には、.でプロパティを指定する方法と添字(連想配列)でアクセスする方法があります。
var obj = { x:1, y:2, z:3 }; console.log ( obj.x ); console.log ( obj["x"] );
オブジェクトとfor-in
/* * obj_for_in1.js * Copyright (C) 2014 kaoru <kaoru@bsd> */ var obj = { x:1, y:2, z:3 }; for (var key in obj) { console.log(obj[key]); }
$ node obj_for_in1.js 1 2 3
オブジェクトとfor-each-in
for-each-inは、JavaScript 1.7で追加されました。
/* * obj_for_each1.js * Copyright (C) 2014 kaoru <kaoru@bsd> */ var obj = { x:1, y:2, z:3 }; for each (var value in obj) { console.log(value); }
node v0.10.30,v0.10.31では、動作しません。
プロパティの存在を確認する
オブジェクトのプロパティを存在するか、確認するには、 in を使用します。
/* * object_exist_property.js * Copyright (C) 2014 kaoru <kaoru@bsd> */ var obj = { x:17 }; console.log ( "x" in obj ); // 存在する true console.log ( "y" in obj ); // 存在しない false
$ node object_exist_property.js true false
オブジェクトのプロパティの削除
オブジェクトのプロパティを削除するには、 delete を使用します。
delete obj.target;
実際の例を示します。
/* * object_delete_property.js * Copyright (C) 2014 kaoru <kaoru@bsd> */ var obj = { x:17 }; console.log ( "x" in obj ); // 存在する true delete obj.x; // プロパティ x を削除する console.log ( "x" in obj ); // 存在しない false
$ node object_delete_property.js true false
関連項目
- 関数リテラル
- オブジェクト
ツイート
スポンサーリンク