有条件地删除对象的属性

时间:2012-03-10 18:08:29

标签: javascript javascript-objects

我有一个对象,可能有也可能没有我要删除的属性;在运行时添加属性。这就是我编写代码的方式:

if (MyObject.hasOwnProperty("SomeProperty")) {
   delete MyObject['SomeProperty'];
}

如果我删除条件以测试该属性是否存在,代码不会崩溃,但我想知道这是否仅仅是因为我在Chrome中运行它或如果它是有效的JavaScript。换句话说,我可以在没有delete MyObject['SomeProperty'];语句的情况下编写.hasOwnProperty并且即使对象不具备该属性也可以正常。

1 个答案:

答案 0 :(得分:4)

这里的条件是不必要的。如果对象上不存在该属性,delete操作将不执行任何操作。它也不会删除继承的属性。

Delete Documentation