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

如何通过自定义函数动态删除JavaScript对象的指定属性

代码修正方案

你写的代码有两个核心问题导致功能失效:

  • 传参错误:调用deleteProperty时你传的是this.rollno,全局环境下的this指向window而非student对象,而且你传递的是属性的值而非要删除的属性名称,需要传入属性名字符串,比如'rollno'
  • delete操作逻辑错误:你直接写delete property删除的是函数内部的参数变量,根本不会作用到student对象的属性上,需要用this[property]的动态属性访问语法定位到对象的对应属性再删除

修正后的可运行代码如下:

const student = {
  names: "David Rayy",
  sclass: "VI",
  rollno: 12,

  deleteProperty(property) {
    console.log(property)
    // 用this访问当前实例,方括号语法动态读取属性
    delete this[property]
    console.log(student)
  },
}

// 传入要删除的属性名字符串
student.deleteProperty('rollno')

运行后会看到student对象的rollno属性被成功删除。

内容的提问来源于stack exchange,提问作者berboş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:06:02