javascript - 关于defineProperty的value
本文介绍了javascript - 关于defineProperty的value的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
> var a = {}
> Object.defineProperty(a, "b", {
... value: 110})
{}
> a
{}
> a.b
110
> a.b = 555
555
> a.b
110
> var aa = {b: 1}
undefined
> Object.defineProperty(aa, "b", {
... value: 119})
{ b: 119 }
> aa.b
119
> aa.b = 1
1
> aa.b
1
为什么aa.b可更改,a.b不能?
解决方案
属性描述符有三个属性分别是 configurable
enumerable
writable
,默认值均为 false
而使用对象字面量定义的属性描述符均为 true
,可以通过 Object.getOwnPropertyDescriptor(a, 'b')
及 Object.getOwnPropertyDescriptor(aa, 'b')
来获取两个属性的描述符。
所以 a.b
不可修改,aa.b
可以修改。
这篇关于javascript - 关于defineProperty的value的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文