为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2023-02-17 16:22:31
我正在阅读MDN 上Object.defineProperty的文档,他们解释得很好,但我无法理解数据描述符和访问器描述符之间的区别是什么?他们没有提及任何有关它们的信息,例如它们是如何创建的以及从何处创建的。请你帮助我好吗?
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

访问器描述符和数据描述符之间的主要区别是访问器用 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';

  }

});


查看完整回答
反对 回复 2023-02-17
?
隔江千里

TA贡献1906条经验 获得超10个赞

对象中的属性描述符有两种主要类型:数据描述符和访问器描述符。数据描述符是具有值的属性,该值可能是也可能不是可写的。访问器描述符是由一对 getter-setter 函数描述的属性。描述符必须是这两种风格之一;不可能两者兼而有之。

数据描述符定义{value: any; writable: boolean;}

定义的访问器描述符{ get(){}, set(value){} }

您可以/必须定义一个或另一个,不能将 getter/setter 与可写或其他一些交叉一起使用。

两者都允许 等属性enumerable


查看完整回答
反对 回复 2023-02-17
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号