中的枚举属性函数_JS中的对象属性之数据属性/访问器属性

df59718a6c857b16cfac6f26827e38da.png

也许有人对这个比较陌生,什么是数据属性/访问器属性?,它是干啥的?,客官往里走,里面都有:

在ECMAscript中有两种属性:数据属性 And 访问器属性

数据属性: 规定一个 obj 中属性的特性,就是行为,这个属性能干什么,不能干什么? 来了

value:设置属性值,默认值为 undefined。

ddb880600f38bd0bf5e08ba50372e743.png


value描述符

writable:设置属性值是否可写,默认值为 true。

d56d85e532a84c7d6ef0db920aa31ddf.png


writable描述符

enumerable:设置属性是否可枚举,即是否允许使用 for/in 语句或 Object.keys() 函数遍历访问,默认为 true。

eb61b1bec474fcdad72024b006275a54.png


枚举描述符

configurable:设置是否可配置属性特性,默认为 true。如果为 false,将无法删除该属性,不能够修改属性值,也不能修改属性的属性描述符。

2f9fcb4ff1267a0875de7cc587a49e09.png


configurable描述符

但是这里注意:如果属性描述符有 writable 或 configurable 有一个为 true,则 value 也允许修改。

74eacc797246b54a65ac21107926204f.png


注意点

总结:数据属性 就是对指定属性做出控制 能否:修改 枚举 删除 value是什么

访问器属性: 一个对象有多个属性,当你访问此对象的某个属性时,期间发生了什么从开始到结束

这里说一下 configurable 和 enumerable 也是访问器属性,上面以做出解释,这里就不写了,主要是以下两个

get:取值 getter 函数,默认为 undefined,当访问该属性时,会调用此函数,执行时不传入任何参数,但是会传入this对象(由于继承关系,这里的this并不一定是定义该属性的对象)。该函数的返回值会被用作属性的值。

005e09c0735dec367e1492cee3302133.png


访问器属性之get

set:属性的 setter 函数,如果没有 setter,则为 undefined。当属性值被修改时,会调用此函数。该方法接受一个参数(也就是被赋予的新值),会传入赋值时的 this 对象。

3a6e1f7d8e5f4f1a87cea0bbd13ed0b7.png


访问器属性之set

以上就是对数据描述符的相关介绍及使用展示,主要还是get 和 set 两个访问器属性,因为可以实现 模拟 vue中的 v-model 做数据双向绑定,对观看 vue 响应式数据原理 的源码部分有帮助呦! 还有那句话:如有不对之处及不周之处请大佬们指出,也希望对一些人有所帮助,咱们下次再会!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值