关于对象和属性的特性

   又有个细节让我迷糊了一会儿。属性的特性里只有 writable,configurable,value,enumerable(对于数据而言),看到可扩展/不可扩展的时候就有点蒙了,也没看到extendable一类的特性啊。然后才发现可扩展性是针对对象,而不是属性的。

另外如果configurable是false,仍然可以把writable从true设置到false(但是不能再设置成true)。←隔几个月回头再看到这个点的时候,还是会觉得怪怪的。哎。

  还有关于Object.getOwnPropertyNames和Object.keys的区别,查了一下,它们同样都能返回本对象自有的属性--不包括原型链上的属性。然而不同在于前者能返回不可枚举的属性,而后者不可以,测试了一下,也确实如此。在测试中我也发现,getOwnPropertyDescriptor所返回的用来描述属性的对象,似乎是新生成的一个对象。它并不是在动态地关联原属性,换句话说,修改这个对象并不能影响原属性的特性。想修改还是得用Object.defineProperty啊。←不过这某种意义上也挺方便的,想搞个什么深拷贝去复制属性特性的话就不用递归来复制这个Descriptor了。

 

转载于:https://www.cnblogs.com/roay/p/6443490.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值