📜  JavaScript 中的 Object.isFrozen()

📅  最后修改于: 2022-05-13 01:58:09.753000             🧑  作者: Mango

JavaScript 中的 Object.isFrozen()

JavaScript中的对象和对象构造函数?
在面向对象编程中,定义对象的方式在很多情况下都受到限制。要创建可以多次使用的对象“类型”,而不必每次都重新定义对象以满足每个特定实例的需要,标准方法是使用对象构造函数。
对象构造函数只是一个普通的 JavaScript函数,它通常同样健壮,即定义参数、调用其他函数等。对象构造函数创建对象的蓝图,而不是对象本身。
让我们以现实世界的物品“狗”为例。狗的属性可能是它的颜色或名称,而方法可能是“吠叫”。这里要注意的重要一点是,每只狗都会有不同的名字,甚至是树皮类型。为了创建满足这种灵活性需求的对象类型,我们使用对象构造函数。所以狗将是一个对象构造函数,它的属性(颜色、名称)和方法(树皮噪音)使用“this”关键字在其中声明。使用对象构造函数定义的对象然后使用 new 关键字进行实例化。
这有助于轻松定义 dog 的多个实例(对象构造函数),每个实例都有自己的名称 - 这是对象构造函数为自定义对象带来的灵活性。
Object.isFrozen() 方法
在 Object 构造方法中,有一个方法 Object.isFrozen() 用于确定对象是否被冻结。
如果以下所有条件都成立,则对象被冻结:

  1. 如果它不可扩展。
  2. 如果它的所有属性都是不可配置的。
  3. 如果它的所有数据属性都是不可写的。

Object.isFrozen() 将对象作为必须检查的参数,并返回一个表示对象是否被冻结的布尔值。
应用:

  • Object.isfrozen() 用于检查对象是否被冻结。

句法:

Object.isFrozen(obj)

使用的参数:

  1. obj :它是必须检查的对象。

返回值:
Object.isFrozen() 返回一个布尔值,表示对象是否被冻结。
下面提供了上述函数的示例。
例子:

Input : const object = {
        property: 'hi geeksforgeeks'
        };
        console.log(Object.isFrozen(object));
Output : false

Input : const object = {
        property: 'hi geeksforgeeks'
        };
        Object.freeze(object);
        console.log(Object.isFrozen(object));
Output : true

下面提供了上述函数的代码。
代码 1:

html


html


输出 :

false

代码 2:

html


输出 :

true

例外:

  • 如果传递的参数不是 object ,则会导致 TypeError。

支持的浏览器:

  • 谷歌浏览器 6 及以上
  • 边缘 12 及以上
  • 火狐 4 及以上
  • 互联网浏览器 9
  • Opera 12 及以上
  • Safari 5.1 及更高版本