📜  JavaScript 中的 Object.isSealed()

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

JavaScript 中的 Object.isSealed()

JavaScript 中的对象和对象构造函数?
在面向对象编程的现实世界中,我们已经知道类和对象的重要性,但与其他编程语言不同,JavaScript 没有其他语言中看到的传统类。但是 JavaScript 有对象和构造函数,它们大多以相同的方式执行相同类型的操作。

  • 构造函数是与“new”关键字一起使用的通用 JavaScript 函数。 JavaScript 中的构造函数有两种类型,即内置构造函数(数组和对象)和自定义构造函数(为特定对象定义属性和方法)。
  • 当我们需要一种方法来创建可以多次使用的对象“类型”而不必每次都重新定义对象时,构造函数会很有用,这可以使用对象构造函数来实现。将构造函数的名称大写以将它们与常规函数区分开来是一种惯例。

例如,考虑以下代码:

function Automobile(color) {
  this.color=color;
}
  
var vehicle1 = new Automobile ("red");

函数“Automobile()”是一个对象构造函数,它的属性和方法,即“color”是通过在它的前面加上关键字“this”来声明的。使用对象构造函数定义的对象然后使用关键字“new”成为即时对象。

当 new Automobile() 被调用时,JavaScript 做了两件事:

  1. 它创建一个新的对象(实例)汽车()并将其分配给一个变量。
  2. 它将对象的构造函数属性(即“颜色”)设置为汽车。

Object.isSealed() 方法
Object.isSealed() 方法用于确定对象是否被密封。
如果以下所有条件都成立,则对象被密封:

  1. 如果它不可扩展。
  2. 如果它的所有属性都是不可配置的。
  3. 如果它不可移动(但不一定不可写)。

Object.isSealed() 将对象作为必须检查的参数,并返回一个布尔值,表示对象是否被密封。

应用:

  • Object.isSealed() 用于检查对象是否被密封。

句法:

Object.isSealed(obj)

下面提供了上述函数的示例。

例子:

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

说明:在上面的例子中,对象没有使用 Object.seal() 方法密封,因此,使用 Object.isSealed() 方法检查时返回 false。

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

说明:在上面的示例中,对象已使用 Object.seal() 方法密封,因此,使用 Object.isSealed() 方法检查对象时返回 true。

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

代码 1:


输出 :

false

代码 2:


输出 :

true

例外:

  • 如果传递的参数不是 object ,则会导致 TypeError。
  • 如果一个对象没有作为参数传递给该方法,那么它会将其视为一个密封对象并返回 true。

支持的浏览器:

  • 铬 6 及以上
  • 边缘 12 及以上
  • 火狐 4 及以上
  • Internet Explorer 9 及更高版本
  • Opera 12 及以上
  • Safari 5.1 及更高版本