【发布时间】:2020-03-07 07:06:32
【问题描述】:
我正在尝试从 Person 对象中删除一个属性,如下所示:
const Person = {
firstname: 'John',
lastname: 'Doe'
}
console.log(Person.firstname);
// Output: "John"
delete Person.firstname;
console.log(Person.firstname);
// Output: undefined
当我使用这个 delete 时,操作符工作正常,Person.firstname 日志显示为 undefined,正如预期的那样。但是,当我使用Person 对象使用Object.create() 方法创建一个新对象时,如下所示:
const Person = {
firstname: 'John',
lastname: 'Doe'
}
const Person2 = Object.create(Person);
console.log(Person2.firstname);
// Output: "John"
delete Person2.firstname;
console.log(Person2.firstname);
// expected output: undefined
// actual output: "John"
您可以看到Person2.firstname 最后返回“John”,而我期望它的工作方式与第一个 sn-p 中的相同并返回 undefined。
所以,我的问题是:
- 为什么
delete Person2.firstname不起作用? - 另外,我们如何从
Person2对象中删除firstname属性?
感谢您的帮助。
【问题讨论】:
标签: javascript object delete-operator object-create