Reflect.deleteProperty() 提供了一种从对象中删除属性的方法。它可能是 delete 运算符,但它是一个方法而不是运算符。Reflect.deleteProperty() 在成功删除属性时返回 true,在删除失败时返回 false,这与 delete 运算符相反,后者返回一个布尔值,指示属性是否已正确删除。
与 delete 运算符相比,Reflect.deleetProperty() 的主要优点是它在删除失败时的行为。如果不允许删除,则会引发错误,而不是静默保留。
语法
以下是 JavaScript Reflect.deleteProperty() 方法的语法 -
Reflect.deleteProperty( target, propertyKey )
参数
此方法接受两个参数。相同的描述如下 -
- target - 要删除其属性的目标对象。
- propertyKey − 表示要删除的属性名称的字符串或符号。
返回值
此方法返回一个 Boolean 值,指示属性是否已成功删除。
示例 1
让我们看看下面的示例,我们将在其中使用 Reflect.deleteProperty() 并从对象中删除属性。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
a: 11,
b: 22,
c: 33
};
Reflect.deleteProperty(x, 'b');
document.write(JSON.stringify(x));
</script>
</body>
</html>
如果我们执行上述程序,它将在网页上显示文本。
示例 2
考虑另一个场景,我们将删除一个不存在的属性并观察输出。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
a: 1,
b: 2,
c: 3
};
document.write(Reflect.deleteProperty(x, 'd'), " < br > ");
document.write(JSON.stringify(x));
</script>
</body>
</html>
在执行上述脚本时,它将在网页上显示文本。
示例 3
在下面的示例中,我们将在条件语句中使用 Reflect.deleteProperty()。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
a: 11,
b: 22,
c: 33
};
const y = 'c';
if (Reflect.deleteProperty(x, y)) {
document.write(`Successfully deleted property ${y}`);
} else {
document.write(`Failed to delete property ${y}`);
}
</script>
</body>
</html>
当我们执行上述脚本时,会弹出输出窗口,在网页上显示文本。