详细讲解Object.defineProperty并举例
时间: 2023-12-15 15:07:15 浏览: 27
Object.defineProperty 是 JavaScript 中一个用来定义对象属性的 API。它可以用来添加新属性,修改已有属性的特性,或者获取属性的值。
语法如下:
```
Object.defineProperty(obj, prop, descriptor)
```
其中,`obj` 是要定义属性的对象,`prop` 是要定义的属性名,`descriptor` 是属性描述符对象。属性描述符对象包含以下属性:
- `value`:属性的值,默认为 undefined。
- `writable`:属性是否可写,默认为 false。
- `enumerable`:属性是否可枚举,默认为 false。
- `configurable`:属性是否可配置,默认为 false。
- `get`:获取属性值的方法。
- `set`:设置属性值的方法。
下面是一个简单的例子,展示如何使用 Object.defineProperty 定义一个只读属性:
```
var obj = {};
Object.defineProperty(obj, 'name', {
value: 'John',
writable: false,
enumerable: true,
configurable: true
});
console.log(obj.name); // 输出 "John"
obj.name = 'Mike'; // 不会改变属性值
console.log(obj.name); // 仍然输出 "John"
```
在上面的例子中,我们定义了一个只读的属性 name,它的值为 "John",并且可枚举和可配置。由于 writable 属性被设置为 false,因此无法通过赋值改变属性值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)