JavaScript學習筆記(六)防篡改對象
阿新 • • 發佈:2019-04-27
ext 可擴展 ... boolean ava onf span class sse
1. 不可擴展對象
可寫,可刪除,不可新增
Object.preventExtensions(obj)
Object.isExtensible(obj)
2. 密封對象
可寫,不可刪除,不可新增, [[Configurable]]設置為false
Object.seal(obj)
Object.isSealed(obj)
3. 凍結對象
不可寫,不可刪除,不可新增, [[Configurable]]設置為false, [[Writable]]為false
Object.freeze(obj)
Object.isFrozen(obj)
擴展:
對象屬性的[[Configurable]]特性為false時,表示不能再用Object.defineProperty(obj, prop, descriptor)修改對象屬性的特性了。
對象屬性的特性描述:
{ value: 任意類型的值, // 值 enumerable: Boolean, // 是否可枚舉(for...in或Object.keys()) configurable: Boolean, // 是否可以刪除目標屬性或是否可以再次修改屬性的特性 writable: Boolean // 屬性值是否可以重寫 }
JavaScript學習筆記(六)防篡改對象