Object.freeze和Object.seal分析

1.Object.seal就是封闭某个对象,主要就是两点:

1)阻止添加新属性;
2)现有属性变得不可配置(non-configurable)
第一点比较好理解,就是不能给对象设置未知属性,举个例子来说:

 var person = {
   };
 Object.seal(person);
 person.name= '111'
 console.log(person) //output: {}

我们来解释一下第二点,不可被配置,那么就是设置对象属性的configuration为false:

Object.defineProperty(person, 'name', {
   
	configurable: false
})

然后会起到如下作用:
1、不可以通过delete去删除该属性从而重新定义属性;
2、不可以转化为访问器属性;
3、configurable和enumerable不可被修改;
4、writable可单向修改为false,但不可以由false改为true;
5、value是否可修改根据writable而定。
下面我们可以来一一验证:
1)

// 这个时候我们把person.name的configurable设置为false,
// 这个时候我们执行delete person.name,并没有删除掉name,
// 仍然输出{name: 'cheny'}
var person = {
   };
Object.
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值