Object.defineProperty有删除行为吗?
时间: 2024-08-21 14:00:35 浏览: 120
详谈Object.defineProperty 及实现数据双向绑定
`Object.defineProperty()` 方法用于在一个对象上定义一个新属性,或者修改一个已有的属性,它并没有提供直接删除对象属性的功能。这个方法可以定义属性的特性,比如值、可枚举性、可写性等。如果你想删除对象的属性,应该使用 `delete` 操作符。
例如:
```javascript
let obj = {
name: "C知道"
};
// 定义属性
Object.defineProperty(obj, "age", {
value: 10,
writable: true,
enumerable: true,
configurable: true
});
// 删除属性
delete obj.age;
console.log(obj); // { name: "C知道" } 属性 age 已经被删除
```
在使用 `Object.defineProperty()` 定义属性时,可以设置 `configurable` 特性为 `false`,这样属性就不能被删除,也不能重新定义,除非设置为 `true` 才可以。
阅读全文