关于javascript的seal的扩展性一

<!DOCTYPE html>
<html>
<head>
<meta charset="{CHARSET}">
<title></title>
<script type="text/javascript">
var obj={
x:1,
y:2,
username:'qqqqq'
};
obj.age=5;
var o=Object.seal(obj);
console.log(obj===o);//true
console.log(Object.isExtensible(o));//false
/*seal()将可扩展对象改成不能扩展的 也就是封闭的
* 所谓可扩展的就是能够动态地添加属性之类的
* isisExtensible()能够检测对象是否能扩展

*/
// 注意:里面声明的对象的属性的值还是可以修改的
obj.y=55;
console.log(obj.y);//55
console.log(o.y);//55
// 注意:不能将一个属性重新定义或者在添加属性
o.z=66;
console.log(o.z);//undefined
obj.z=77;
console.log(obj.z);//undefined
console.log(o.z);//undefined
// 也不能删掉
delete o.username;
console.log(o.username);
// 也不能解封
//这里用isSealed()来判断是否解封
console.log(Object.isSealed(o));//true
</script>
</head>
<body>
</body>
</html>

你可能感兴趣的:(关于javascript的seal的扩展性一)