理解Object.defineProperty方法(面试)

理解Object.defineProperty方法

语法

Object.defineProperty(obj, prop, descriptor)
  • obj:需要定义属性的对象
  • prop:需要定义的属性
  • descriptor [dɪˈskrɪptə®] :属性的描述描述符
  • 返回值:返回此对象

descriptor [dɪˈskrɪptə®] 描述符

在JS中对象具有两种属性,分别是数据属性和访问器属性,所以其描述符也根据属性分类,分为数据描述符和访问器描述符。

在使用描述符时,必须是两种形式之一,且两者不能同时使用。

数据描述符

数据描述符是一个具有值的属性,该值可能是可写的,也可能是不可写的。

它具有以下可选的键值:

configurable:表示该属性能否通过delete删除,能否修改属性的特性或者能否修改访问器属性,默认为false。当且仅当该属性的configurable为true时,才能实现上述行为。

enumerable /ɪˈnjuːm(ə)rəb(ə)l/ :表示该属性是否可以枚举,即可否通过for..in访问属性。默认为false。

value:表示该属性的值。可以是任何有效的JS值。默认为undefined。

writable [ˈraɪtəbl]:表示该属性的值是否可写,默认为false。当且仅当属性的writable为true时,其值才能被赋值运算符改变。
访问器描述符

​ 访问器描述符是一个有getter-setter函数对描述的属性的读写。

 // 它具有以下可选的键值:

    configurable:表示该属性能否通过delete删除,能否修改属性的特性或者能否修改访问器属性,默认为false。当且仅当该属性的configurable为true时,才能实现上述行为。

    enumerable /ɪˈnjuːm(ə)rəb(ə)l/ :表示该属性是否可以枚举,即可否通过for..in访问属性。默认为falseget:在读取属性时调用的函数,默认值为undefinedset:在写入属性时调用的函数,默认值为undefined

数据描述符和访问器描述符不能同时使用,否则会报错。

get set

Get:指读取属性时调用的函数。
Set:指写入属性时调用的函数。

get或set不是必须成对出现,任写其一就可以。如果不设置方法,则get和set的默认值为undefined

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值