2017年01月16日

[書評]オブジェクト指向javascriptの原則 3章を読んだ

オブジェクト指向JavaScriptの原則

新品価格
¥2,592から
(2017/1/16 20:27時点)



[書評]オブジェクト指向javascriptの原則 2章を読んだ
の続編

3章は、オブジェクト
以下、3章

・プロパティの存在確認
var person1 = {
name : "person1",
say : function() {
console.log("aaa");
}
};
console.log("name" in person1);
console.log("say" in person1);


・プロパティの存在確認2
console.log("toString" in person1); //true
console.log(person1.hasOwnProperty("toString")); //false
toStringはperson1のプロパティじゃないのでfalse


・プロパティの削除
delete person1.name
console.log(person1.name); //undefined


・プロパティの列挙
for (var property in person1) {
console.log("name:"+property);
console.log("value:"+person1[property]);
}


・プロパティの列挙2
Object.keys()を使う
これはECMA5で追加された
var property = Object.keys(person1);
var i, len;
for (i=0, len=property.length;i<len;i++) {
console.log("name:"+property[i]);
console.log("value:"+person1[property[i]]);
}


・getとset
ECMA5でgetとsetが使えるようになった。
うおーまじかーこれ全く知らなかった
var person2 = {
_name: "person2",
get name() {
console.log("get");
return this._name;
},
set name(value) {
console.log("set");
this._name = value;
}
};
console.log(person2.name); //getが呼ばれる
person2.name = "George";
console.log(person2.name); //setが呼ばれる


・拡張不可
var person3 = {
name: "person3"
};
console.log(Object.isExtensible(person3));
Object.preventExtensions(person3);
console.log(Object.isExtensible(person3));


・seal
値の変更はできる
Object.seal(person3);


・freeze
値の変更もできない
Object.freeze(person3);



本章も大変ためになりました。
ゲッターセッター追加されたんですね
ECMA5どこかでまとめて勉強しておきたい
まだまだjs修行は続くよ!
タグ:javascript
posted by マスタカ at 20:30 | Comment(0) | TrackBack(0) | | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック