es6中object

Descriptor

对象里目前存在的属性描述符有两种主要形式:数据描述符和存取描述符。描述符必须是两种形式之一;不能同时是两者。

数据描述符和存取描述符均具有以下可选键值:
  • configurable:对象的属性是否可以删除,以及除writable特性外的其它特性是否可以被修改.默认false
  • enumerable:对象的属性是否可以枚举,目前有四个操作会忽略该值为false的属性,for...in,Object.keys(),JSON.stringify(),Object.assign(),其中只有for in会返回原型上的属性,其它只处理本身的属性。默认false

    数据描述符具有以下可选键值:
  • value:该属性对应的值,可以是任何有效的js值,默认undefined

  • writable:该属性是否能被=改变值,默认false

    存取描述符具有以下可选键值:
  • get给属性提供getter方法,默认undefined

  • set给属性提过setter方法,默认undefined
let newObj = Object.create(null,
    {bar:{
        get:function(){return this._bar},
        set:function(param){this._bar = param},
        enumerable:true
        }
        });
        newObj.bar = "abc";
        for(let i in newObj){
            console.log("变量名:",i,"变量值:",newObj[i]);
        }

结果:
这里写图片描述
如果去掉enumerable:true,那么就只有_bar,因为bar是不可枚举的。

所以说,属性描述符只是对于对象属性的一种描述,来限制一些操作的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值