JavaScript handler.deleteProperty() 方法



handler.deleteProperty() 方法是 JavaScript 的 Proxy 对象的基本部分,它定义了从 Proxy 对象中删除属性的行为。当对代理对象属性使用 delete 运算符时,将调用它,从而允许开发人员更改删除行为。handler 参数是包含 trap 的对象,包括 deleteProperty,它是删除属性时调用的函数。

调用 handler.deleteProperty() 时,将启动属性删除过程,删除结果将确定删除是否成功。这是围绕属性删除实现 JavaScript 自定义逻辑的重要方法。

语法

以下是 JavaScript handler.deleteProperty() 方法的语法 -


new Proxy(target, {
   deleteProperty(target, property) {}
});

参数

  • target − 它保存目标对象。
  • property − 它是要删除的属性的名称或符号。

返回值

此方法返回一个 Boolean 值,该值指示属性是否已成功删除。

示例 1

让我们看看下面的示例,我们将在其中从对象中删除一个属性。


<html>
<style>
body {
	 	font-family: verdana;
	 	color: #DE3163;
}
</style>
<body>
<script>
let a = {
	 	x: 11,
	 	y: 22
};
let b = {
	 	deleteProperty(target, property) {
	 	 	 document.write(`${property} Property deleted` + " < br > ");
	 	 	 delete target[property];
	 	 	 return true;
	 	},
};
let c = new Proxy(a, b);
delete c.x;
document.write(JSON.stringify(a));
</script>
</body>
</html>

输出

如果我们执行上述程序,它将在网页上显示文本。

示例 2

考虑另一个场景,我们将阻止属性删除。


<html>
<style>
body {
	 	font-family: verdana;
	 	color: #DE3163;
}
</style>
<body>
<script>
let a = {
	 	x: 'Hi',
	 	y: 'Welcome'
};
let b = {
	 	deleteProperty(target, property) {
	 	 	 if (property === 'x') {
	 	 	 	 	document.write('Cannot delete property' + " < br > ");
	 	 	 	 	return false;
	 	 	 } else {
	 	 	 	 	document.write('Deleting property');
	 	 	 	 	delete target[property];
	 	 	 	 	return true;
	 	 	 }
	 	},
};
let c = new Proxy(a, b);
delete c.x;
document.write(JSON.stringify(a));
</script>
</body>
</html>

输出

在执行上述脚本时,它将在网页上显示文本。

示例 3

在以下示例中,我们将删除不存在的属性。


<html>
<style>
body {
	 	font-family: verdana;
	 	color: #DE3163;
}
</style>
<body>
<script>
let a = {
	 	x: 11,
	 	y: 223
};
let b = {
	 	deleteProperty(target, property) {
	 	 	 document.write(`Deleting "${property}" property` + " < br > ");
	 	 	 delete target[property];
	 	 	 return true;
	 	},
};
let c = new Proxy(a, b);
delete c.z;
document.write(JSON.stringify(a));
</script>
</body>
</html>

当我们执行上述代码时,它将生成一个由网页上显示的文本组成的输出。