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>

當我們執行上述程式碼時,它將生成一個輸出,其中包含網頁上顯示的文字。

廣告