es5中的保护对象

es5中的保护对象

由对象中的属性容易修改,js 在es5 增加了对象的属性保护对象

用来合理的限制修改范围

查看这个小对象

var dongdong = {
    name:'dongdong',
    age:18
}
var nameObject = Object.getOwnPropertyDescriptor(dongdong,"name")
console.log(nameObject)
//输出结果
{
    configurable: true		 //是否可以配置当前保护对象
	enumerable: true		//是否可以被枚举(遍历)
	value: "dongdong"		//值
	writable: true			//是否可以写入值(修改值)
}

修改对象中的单个属性的保护对象

//接上例子的对象
Object.defineProperty(dongdong,"name",{
    enumerable:false,
    wrtable:false
})
//修改后再遍历东东这个对象只能遍历到age了name的值也不能修改了
for (var key in dongdong ){
    console.log(key,dondong[key])//age,18//遍历不到name属性了
}
dongdong.name = 'ranran'//会修改不成功
console.log(dongdong.name)//输出dongdong

definedProperty方法只能修改对象中一个属性开关 ,如果多个属性都需要修改开关,代码会很繁琐

//使用Object.defineProperties(对象,{
//		属性名:{
//			开关名:true 或者 false
//		}	
//})
//接上个栗子的对象
Object.defineProperties(dongdong,{
    name:{
        enumerable:false,
        writable:false,
        configurable:false
    },
    age:{
        enumerable:false,
        writable:true,
        configurable:false
    }
})

保护对象可以用来设置对象的规则,而不是能够随意修改,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值