JavaScript Handler deleteProperty() 方法



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

当调用 handler.deleteProperty() 时,会启动属性删除过程,并且删除的结果决定了它是否成功。这是一种在属性删除周围实现 JavaScript 自定义逻辑的重要方法。

语法

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

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

参数

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

返回值

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

示例 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>

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

广告

© . All rights reserved.