JavaScript再入門その1

JavaScriptにおけるオブジェクトの基本的性質より。

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というメンバを列挙する制御構造がある。
  • プロパティは、属性とよばれる性質を持つことがある。