欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Object.defineProperty()总结

Object.defineProperty()总结

2024/10/23 21:28:39 来源:https://blog.csdn.net/weixin_62831076/article/details/142818951  浏览:    关键词:Object.defineProperty()总结

概述Object.defineProperty() 方法用于在对象上定义或修改一个属性

语法:

//obj:要在其上定义或修改属性的对象。
//prop:要定义或修改的属性的名称或 Symbol。
//descriptor:定义或修改属性的属性描述符。
Object.defineProperty(obj, prop, descriptor)

属性描述符:

value:设置属性的值

writable:布尔值,表示属性值是否可以被写入;如果为true,则属性值可通过赋值修改

get:

enumerable:布尔值,表示属性是否可以被枚举(例如,使用 for...in 循环或 Object.keys())。默认为 false

configurable: 布尔值,属性符是否可以被删除。默认为 false

const obj = {};// 定义一个不可写且不可枚举的属性
Object.defineProperty(obj, 'a', {value: 'valueA',writable: false,enumerable: false
});// 定义一个有 getter 和 setter 的属性
Object.defineProperty(obj, 'b', {get: function() {return this._b;},set: function(newValue) {this._b = newValue;},enumerable: true,configurable: true
});console.log(obj.a); // 输出 "valueA"
obj.a = 'newValue'; // 尝试修改属性,但因为 writable 为 false,所以无效
console.log(obj.a); // 仍然输出 "valueA"console.log(obj.b); // 输出 undefined,因为还没有设置值
obj.b = 'valueB'; // 设置值
console.log(obj.b); // 输出 "valueB"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com