Javascript:object ['name']问题

时间:2016-02-18 08:37:38

标签: javascript google-chrome

我有一个obj[prop]形式的对象,在prop === 'name'的情况下,使用语法obj[prop] = 'xyz'无法设置属性。相反,我必须先删除obj[prop],然后再设置它。

这里的代码太多了,所以这是一个普遍的问题。有没有人知道可能导致这个问题的原因是什么?这只是在prop ==='name'时发生的。我试过的其他所有财产都没有问题。

2 个答案:

答案 0 :(得分:2)

我只知道一种这样的情况:name被定义为不可写。它也必须是可配置的,否则你将无法删除它。

var prince = {}
Object.defineProperty(prince, 'name', {
  writable: false,
  configurable: true,
  value: "Prince"
})
prince.name = 'The Artist Formerly Known as Prince';
console.log(prince.name);
// => Prince

答案 1 :(得分:1)

您应该检查属性“name”是否可写:

depends_on

有关属性描述符的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor#Description