如何在 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 作为输出。