如何在 JavaScript 中使用 delete 运算符删除 getter?


在本教程中,我们将学习如何使用 JavaScript 中的 delete 运算符删除 getter 函数。getter 函数用于获取对象的属性,并将属性与 getter 函数绑定,即,每当调用属性时,getter 函数也会随之被调用。在一个对象上,每个名称只能拥有一个 getter 或 setter,因为我们不能在 JavaScript 中使用相同的名称创建多个 getter。

要在 JavaScript 中删除 getter 函数,我们使用 delete 运算符,它使用关键字“delete”。

语法

使用 delete 运算符删除 getter 函数的语法如下:

delete object_name.property
   or
delete object_name[property]

delete 运算符也可用于删除对象的普通属性。delete 运算符在对象中是最有用的运算符,因为它与数组不同,不能使用 pop()splice()filter() 或任何其他方法,因此它只使用 delete 运算符来删除对象中的任何属性。因此,在删除 getter 函数时,您应该非常注意不要删除对象的普通属性。此外,在使用此属性删除 setter 时,您需要注意备份 getter 函数并在删除 setter 函数后将其恢复。

在访问器属性中,我们使用 getter 和 setter 两种方法来获取和设置对象的值,这意味着这两种方法都可用于定义对象访问器。getter 和 setter 属性允许我们从对象外部获取和设置对象属性的值,我们也可以在不访问对象的情况下更改值。

让我们来看一个示例,其中我们将创建一个 getter 函数,然后在 delete 运算符的帮助下将其删除。

步骤

在 JavaScript 中使用 delete 运算符删除 getter 的 HTML 代码编写步骤:

  • 步骤 1 - 创建一个名为 person 的对象。

  • 步骤 2 - 为对象分配一些键值对,例如 first_name、last_name、section 和 hair_color。

  • 步骤 3 - 现在我们使用 getter 函数创建另一个属性,在其中我们通过调用其中的其他键值对来创建一个对象方法。

  • 步骤 4 - 为了在方法中调用其他键值对,我们使用“this”运算符。

  • 步骤 5 - 我们还将使用 return 语句返回 getter 属性的值。

  • 步骤 6 - 现在我们打印 getter 属性的值。

  • 步骤 7 - 现在使用 delete 运算符,使用“delete”关键字删除 getter 属性。

  • 步骤 8 - 最后,我们再次打印 getter 属性的值以检查它是否已删除。

示例

我们可以使用以下代码在 JavaScript 中使用 delete 运算符删除 getter:

<html>
<body>
   <script>
      var person = {
         first_name: "Aditya",
         last_name: "Chaudhary",
         section: "A",
         hair_color: "black",
         get details() {
            return "Student Details<br>" + this.first_name + " " +this.last_name + " of section " + this.section + " have " + this.hair_color+ " color hairs ";
         },
      }
      document.write( person.details);
      delete person.details;
      document.write("<br>Student details (after deletion): " +person.details);
   </script>
</body>
</html>

正如我们在输出中看到的,当我们首先打印 getter 属性时,它向我们显示了 person 的所有详细信息,并在删除后显示为 undefined,这意味着 delete 运算符删除了 getter 属性的值。

因此,delete 运算符删除了 getter 属性的值,但如果我们希望在删除后重新为 getter 属性分配值,我们也可以这样做,这样它将像对象的普通属性一样工作。它还在第一次访问后用数据属性替换访问器属性,从而创建一个延迟初始化的数据属性。

除了从对象中删除键值对之外,delete 运算符还会返回 true 或 false 值。在大多数情况下,它返回 true,除非该属性是非可配置属性,在这种情况下它返回 false。

注意 − 如果我们正在从对象中删除一个对象中不存在的属性,那么我们也会得到 true 作为输出。

更新于: 2022-12-06

820 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告