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