Object.freeze方法

Object.freeze方法是es5中新增加的一個屬性描述符,用於鎖定一個對象,被鎖定後的對象將不可添加或刪除屬性,對自身已有屬性也不可進行修改。

let obj = Object.freeze({name:"aaa"});

obj.age=12;

console.log(obj.age); // undefined

obj.name = "bbb";

console.log(obj.name); // aaa

delete obj.name;

console.log(obj.name); // aaa


// 是否允許擴展
let isExtensible = Object.isExtensible(obj);
console.log(isExtensible); // false

// 是否不允許刪除和添加屬性
let isSealed = Object.isSealed(obj);
console.log(isSealed); // true

// 是否被凍結
let isFrozen = Object.isFrozen(obj);
console.log(isFrozen); // true

這個方法主要用於創建並鎖定一個全局對象,在一些框架封裝裏邊可以藉助它鎖定一個唯一全局對象。在vue等框架的源碼中你可以看到該方法的身影。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章