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)のエントリー
- Object.create()
- Object.getPrototypeOf()
- Object.isFrozen()
- Object.freeze()
- Object.isSealed()
- Object.seal()
- Object.isExtensible()
- Object.preventExtensions()
- Object.getOwnPropertyDescriptor()
- Object.defineProperties()
- Object.defineProperty()
- keys()
- valueOf()
- toString()
- toLocaleString()
- propertyisEnumerable()
- isProtoTypeOf()
- hasOwnProperty
- constructor