要從一個對象中刪除一個屬性,你可以這樣做。
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
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。
發表評論
請登錄后評論...
登錄后才能評論