JavaScript再入門その1
JavaScriptは動的にメンバを定義する事が出来る。
JavaScriptにおけるメンバの定義
var obj = new Object(); alert(obj.field); // 未定義。未定義の場合 undefined と評価される。 obj.field = 10; // 代入により field というメンバが定義された。 alert(obj.field); // 10 と評価される。 delete obj.field; // メンバ削除 alert(obj.field); // 削除されたので undefined と評価される。
メンバのアクセスには二通りの方法がある
ドットを用いて識別子を直接記述するドット記法
obj.member
括弧記法
var obj = new Object(); obj.member = "hoge"; var str = "member"; alert(obj.member == obj[str]); // true
for inループ
for inループサンプルコード
var obj = new Object(); obj.foo = "ふー"; obj.bar = "ばー"; for (var i in obj) { alert(i); // ループカウンタにメンバ名が入る。 alert(obj[i]); // 括弧記法でメンバを参照できる。 }
プロパティの属性
DontEnum属性の例
var str = new String("This is a string."); alert(str.length); str.prop1 = "Property"; // prop1 というプロパティを定義する。 str.prop2 = 256; // prop2 というプロパティを定義する。 for (var i in str) { alert(i + " = " + str[i]); //str.lengthはDontEnum属性を持つので表示されない。 }
まとめ
- オブジェクトのメンバは、プログラム中で動的に追加・削除できる。
- メンバのアクセスには、ドット記法と括弧記法の2通りがある。
- for inというメンバを列挙する制御構造がある。
- プロパティは、属性とよばれる性質を持つことがある。