如何在 JavaScript 中清除对象
使用 for..in
循环清除对象并删除其所有属性。 循环将遍历对象中的所有可枚举属性。 在每次迭代中,使用 delete
运算符删除当前属性。
const obj = {a: 'one', b: 'two'};
for (const key in obj) {
delete obj[key];
}
console.log(obj); // 👉️ {}
for...in
循环遍历对象的所有可枚举属性。
可枚举属性是使用简单赋值添加到对象的属性,例如 点
.
。 或方括号[]
赋值。
使用 Object.definedProperty
方法分配给对象的属性默认情况下是不可枚举的,并且不会在 for...in
循环中迭代。
Object.defineProperty
方法主要由第三方库创建者使用,而不是在日常代码中使用,因此 for...in
循环很可能涵盖我们对象的所有属性。
重新分配包含对象的变量,将其设置为空对象,性能要高得多。 这只有在我们使用 let 或 var 关键字声明对象时才有可能。
let obj = {a: 'one', b: 'two'};
obj = {};
console.log(obj); // 👉️ {}
请注意,我们在声明 obj 变量时使用了 let 关键字。
let
关键字允许我们重新分配变量。 请注意,使用const
声明的变量不能重新分配。
在我们的对象包含不可枚举属性的极不可能的情况下,我们可以使用以下方法来清除对象。
let obj = {a: 'one', b: 'two'};
Object.defineProperty(obj, 'color', {
value: 'red',
enumerable: false, // 👈️ defaults to false
configurable: true,
});
const allProperties = Object.getOwnPropertyNames(obj);
console.log(allProperties); // 👉️ ['a', 'b', 'color']
allProperties.forEach(property => {
delete obj[property];
});
console.log(Object.getOwnPropertyNames(obj)); // []
我们使用 Object.getOwnPropertyNames
方法来获取对象的可枚举和不可枚举属性的数组。
我们使用 Array.forEach
方法遍历数组并使用 delete
运算符清除每个属性。
如前所述,最好使用 let
关键字并将变量重新分配给空对象。 这是清除对象并让垃圾收集器完成其工作的最快方法。
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
如何在 JavaScript 中合并两个数组而不出现重复的情况
发布时间:2024/03/23 浏览次数:86 分类:JavaScript
-
本教程介绍了如何在 JavaScript 中合并两个数组,以及如何删除任何重复的数组。