如何在JavaScript中删除表达式中的对象属性?

如何在JavaScript中删除表达式中的对象属性?,javascript,Javascript,如果它是代码块的一部分,我可以这样做: constobj={a:1,b:2}; 删除obj.a; 控制台日志(obj)查看对象的列表: 从对象中删除属性: 对象本身没有任何方法可以删除它自己的属性(例如,像Map.prototype.delete())。为此,必须使用delete运算符 查看对象的当前位置: 从对象中删除属性: 对象本身没有任何方法可以删除它自己的属性(例如,像Map.prototype.delete())。为此,必须使用delete运算符 delete obj.a已经是一个表

如果它是代码块的一部分,我可以这样做:

constobj={a:1,b:2};
删除obj.a;
控制台日志(obj)查看对象的列表:

从对象中删除属性: 对象本身没有任何方法可以删除它自己的属性(例如,像Map.prototype.delete())。为此,必须使用delete运算符

查看对象的当前位置:

从对象中删除属性: 对象本身没有任何方法可以删除它自己的属性(例如,像Map.prototype.delete())。为此,必须使用delete运算符


delete obj.a
已经是一个表达式。您可以使用
constresult=(删除obj.a,obj)
如果您确实需要
结果
别名。否则,只需使用
delete obj.a
并保留
obj
,因为它是同一个对象。返回值是什么?为什么要删除带有函数的属性?使用
删除
有什么问题?您是否正在考虑只定义自定义函数的简单解决方案?您是否希望对象是不可变的?(可以查看immutable.js之类的库)@SethMcClaine不,这个问题是关于如何在表达式上下文中删除对象属性,而不是如何使对象不可变(在没有库的情况下,您可以通过
object.freeze
实现)。
delete obj.a
已经是一个表达式。您可以使用
constresult=(删除obj.a,obj)
如果您确实需要
结果
别名。否则,只需使用
delete obj.a
并保留
obj
,因为它是同一个对象。返回值是什么?为什么要删除带有函数的属性?使用
删除
有什么问题?您是否正在考虑只定义自定义函数的简单解决方案?您是否希望对象是不可变的?(也许可以查看immutable.js之类的库)@SethMcClaine不,这个问题是关于如何在表达式上下文中删除对象属性,而不是如何使对象不可变(在没有库的情况下,您已经可以通过
object.freeze
来实现)。但是确实存在。@SebastianSimon哦,很酷,您应该将此作为一个答案发布。“我不知道这是存在的。但确实存在。”塞巴斯蒂安西蒙:哦,太酷了,你应该把它作为一个答案贴出来。我不知道它的存在。