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.