刪除對象的方法,js刪除對象的屬性怎麼做

要從一個對象中刪除一個屬性,你可以這樣做。

delete myObject.regex;
// 或者
delete myObject['regex'];
// 或者,
var prop = "regex";
delete myObject[prop];

示例

var myObject = {
    "a": "1111",
    "b": "2222",
    "c": "3333"
};
delete myObject.a;

console.log(myObject);

知識點: delete 操作符

delete 操作符用於刪除對象的某個屬性;如果沒有指向這個屬性的引用,那它最終會被釋放。

與通常的看法不同,delete操作符與直接釋放內存無關。內存管理 通過斷開引用來間接完成的,查看內存管理頁可了解詳情。

delete 操作符會從某個對象上移除指定屬性。成功刪除的時候會返回 true,否則返回 false。

但是,以下情況需要重點考慮:

  • 如果你試圖刪除的屬性不存在,那麼delete將不會起任何作用,但仍會返回true
  • 如果對象的原型鏈上有一個與待刪除屬性同名的屬性,那麼刪除屬性之後,對象會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上起作用)
  • 任何使用 var 聲明的屬性不能從全局作用域或函數的作用域中刪除。這樣的話,delete操作不能刪除任何在全局作用域中的函數(無論這個函數是來自於函數聲明或函數表達式)除了在全局作用域中的函數不能被刪除,在對象(object)中的函數是能夠用delete操作刪除的。
  • 任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。
  • 不可設置的(Non-configurable)屬性不能被移除。這意味着像Math, Array, Object內置對象的屬性以及使用Object.defineProperty()方法設置為不可設置的屬性不能被刪除。

代碼例子:

var Employee = {
  age: 28,
  name: 'abc',
  designation: 'developer'
}

console.log(delete Employee.name);   // returns true
console.log(delete Employee.age);    // returns true

// 當試着刪除一個不存在的屬性時
// 同樣會返回true
console.log(delete Employee.salary); // returns true

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/228367.html

(1)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 21:45
下一篇 2024-12-09 21:47

相關推薦

發表回復

登錄後才能評論