📜  Javascript Object.isFrozen()

📅  最后修改于: 2020-09-27 06:51:57             🧑  作者: Mango

JavaScript Object.isFrozen()检查对象是否冻结。

冻结的对象无法再更改。冻结对象可防止:

  1. 从新属性添加到对象。
  2. 要从对象中删除的现有属性。
  3. 更改现有属性的可枚举性,可配置性或可写性。
  4. 更改现有对象属性和原型的值。

isFrozen()方法的语法为:

Object.isFrozen(obj)

isFrozen()方法是静态方法,使用Object类名称进行调用。


isFrozen()参数

isFrozen()方法具有以下功能:

  • obj-应该检查的对象。

从isFrozen()返回值
  • 返回一个Boolean指示给定对象是否冻结。

示例:使用isFrozen()
// new objects are extensible, so not frozen
console.log(Object.isFrozen({ name: "JavaScript" })); // false

// preventing extensions only does not make frozen
// property is still configurable
let obj = { a: 1 };
Object.preventExtensions(obj);
console.log(Object.isFrozen(obj)); // false

// deleting property
delete obj.a;
console.log(Object.isFrozen(obj)); // true -> vacuously frozen

let newObj = { b: 2 };
// make non-extensible
Object.preventExtensions(newObj);
// make non-writable
Object.defineProperty(newObj, "b", {
  writable: false,
});
// properties are still configurable
console.log(Object.isFrozen(newObj)); // false

// using freeze()
let frozen = { 65: "A" };

Object.freeze(frozen);
console.log(Object.isFrozen(frozen)); // true

输出

false
false
true
false
true.

推荐读物:

  • JavaScript Object.freeze()