JavaScript 继承(二)for in 和属性描述表

17 篇文章 0 订阅

不好意思因为懒,,我懒得弄图,,就是代码+注释

var arr = [1,2,3];

//for in 可以遍历数组
for(let key in arr){
    console.log(arr[key])
}

var _obj = {
    "one":1,
    "two":2
}
//for in 也可以遍历object
showObj(_obj);

//其实for in 是会遍历 目标所有可枚举的值

//通过Object.getOwnPropertyDescriptor 来查看 arr[0] 的属性描述表
showObj(Object.getOwnPropertyDescriptor(arr,"0"));
// value: 1  数值 是 1
// writable: true  可写 代表可以修改该值
// configurable: true 可配置 代表可以修改该值得属性描述表
// enumerable: true 可枚举 for in能否遍历到就看这个值是否为 true

//修改 arr[0]的属性描述表 使得它不可枚举
Object.defineProperty(arr,"0",{
    
    enumerable:false
})

//for in 无法遍历到 arr[0]
for(let key in arr){
    console.log(arr[key])
}
//发现确实 enumerable: true
showObj(Object.getOwnPropertyDescriptor(arr,"0"));

//数据描述表其他用处就不多说了。列举一个
//要设置一个常量 可以使得它的 writable configurable均为假即可。
//话说。。设置不可配置让他权限降级是可以的,也就是说设置了不可配置之后 本来只读要变成读写是不行的,但是反过来可以


function showObj(obj){
    for(let key in obj){
        console.log(key + " : " + obj[key]);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值