Object.seal()

このエントリーをはてなブックマークに追加

Object.seal()はオブジェクトの保護をするためのメソッドです。

オブジェクトをシール(保護)することで、プロパティ(メソッド)の追加や削除がきなくなります。

var bar = {foo:"haa"};
console.log(Object.isSealed(bar));//false
Object.seal(bar);
console.log(Object.isSealed(bar));//true

シールされているかどうかはObject.isSealed()で調べることができます。

シールされたオブジェクトはExtensible属性がfalseに変更されることで追加ができなくなり、Configurable属性がfalseに変更されることで削除ができなくなりあす。

Extensible属性がfalseに変更されたことはObject.isExtensible()で確認できます。

var bar = {foo:"haa"};
console.log(Object.isExtensible(bar));//true
Object.seal(bar);
console.log(Object.isExtensible(bar));//false

Configurable属性がfalseに変更されたことはObject.getOwnPropertyDescriptor()で確認できます。

var bar = {foo:"haa"};
console.log(Object.getOwnPropertyDescriptor(bar,"foo")['configurable']);//true
Object.seal(bar);
console.log(Object.getOwnPropertyDescriptor(bar,"foo")['configurable']);//false

シールされたオブジェクトは以下の様な特徴を持ちます。

var bar = {foo:"haa"};
Object.seal(bar);
console.log(bar.foo);//haa
 
//プロパティ(メソッド)の変更は可能
bar.foo = "raa";
console.log(bar.foo);//raa
 
//プロパティ(メソッド)の追加は不可
bar.gaa = "doo";
console.log(bar.gaa);//undefined
 
//プロパティ(メソッド)の削除は不可
delete bar.foo;
console.log(bar.foo);//raa

登録日 : 2015年08月18日 最終更新日 : 2015年8月18日

同じカテゴリー(Object)のエントリー

検索

スポンサードリンク

バージョン

リファレンス