ECMAScript5新特性之Object.isExtensible、Object.preventExtensions

阻止对象扩展后:ui

 

1 不能添加属性。spa


2 能够修改属性的值。code


3 能够删除属性。对象


4 能够修改属性描述符。blog

 

1152615-20170613141309618-1841944967.png

 

var fruit = { name : '苹果', desc : '红富士' }; // console.log('isExtensible',Object.isExtensible(fruit)); // true
Object.preventExtensions(fruit); console.log('isExtensible',Object.isExtensible(fruit)); // false // fruit.address = '烟台'; console.log('添加address属性',fruit); // fruit.desc = '金帅'; console.log('修改属性',fruit); // 
delete(fruit.desc); console.log('删除属性',fruit); // Object.defineProperty(fruit,'desc',{ enumerable : false }); console.log('修改属性描述符为不可枚举',Object.keys(fruit)); Object.defineProperty(fruit,'desc',{ enumerable : true }); console.log('修改属性描述符为可枚举',Object.keys(fruit));