数据描述符和访问器描述符有什么区别?

我正在阅读MDN 上Object.defineProperty的文档,

他们解释得很好,但我无法理解数据描述符和访问器描述符之间的区别是什么?

他们没有提及任何有关它们的信息,例如它们是如何创建的以及从何处创建的。

请你帮助我好吗?


慕姐4208626
浏览 113回答 2
2回答

慕田峪9158850

访问器描述符和数据描述符之间的主要区别是访问器用 get 和 set 函数替换值和可写配置标志。更多信息在这里数据描述符Object.defineProperty(obj, 'key', {  enumerable: false,  configurable: false,  writable: true,  value: 'some value'});访问器描述符Object.defineProperty(obj, 'key', {  enumerable: false,  configurable: false,  get() {    return this.some_value;  },  set(data) {    this.some_value = 'some value';  }});

隔江千里

对象中的属性描述符有两种主要类型:数据描述符和访问器描述符。数据描述符是具有值的属性,该值可能是也可能不是可写的。访问器描述符是由一对 getter-setter 函数描述的属性。描述符必须是这两种风格之一;不可能两者兼而有之。数据描述符定义{value: any; writable: boolean;}定义的访问器描述符{ get(){}, set(value){} }您可以/必须定义一个或另一个,不能将 getter/setter 与可写或其他一些交叉一起使用。两者都允许 等属性enumerable。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript