You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何构建接收object参数并移除其所有属性后返回的函数?

移除对象所有属性的实现方案

以下几种思路可以实现移除对象所有属性的需求,根据你的场景选择:

1. 清空原对象(保留引用)

如果需要修改原对象并返回它,可以遍历删除所有自有属性:

function clearObject(obj) {
  // 遍历所有可枚举自有属性并删除
  Object.keys(obj).forEach(key => delete obj[key]);
  return obj;
}

如果要处理不可枚举属性和Symbol类型键,用Reflect.ownKeys获取所有自有属性,做到彻底清空:

function clearObject(obj) {
  Reflect.ownKeys(obj).forEach(key => delete obj[key]);
  return obj;
}

2. 返回新的空对象(不修改原对象)

如果不需要保留原对象的引用,直接返回全新的空对象更简洁:

function clearObject() {
  return {};
}

这种方式不会影响原对象,适合不需要修改原实例的场景。

注意事项

  • delete操作符只能删除对象的自有属性,无法删除原型链上的属性;
  • 如果对象是被Object.freeze冻结的,delete操作会失效,这种情况无法修改原对象,只能返回新空对象。

内容的提问来源于stack exchange,提问作者Yosra MH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:19:56