js在默认情况下,所有的对象都是可扩展的.这也是让很多开发人员头特疼的问题.因为在同一环境中,一不小心就会发生修改了不必要的对象,而自己却不知道.
在ECMAScript5可以解决这种问题了.
preventExtensions():经过这个方法处理过的对象,不影响原有对象的删除,修改.但是无法添加新的属性成员了.
示例一:
1 var person={name:"guo"};//申明一个对象 2 person.age=23;//扩展对象 3 alert(person.age);//======>23
示例二:
1 var person={name:"guo"}; 2 Object.preventExtensions(person);//用于处理对象,让它无法被扩展了. 3 person.age=23; 4 alert(person.age);//======>undefined 5
示例三:
1 "use strict";//严格模式 2 var person={name:"guo"}; 3 Object.preventExtensions(person);//用于处理对象,让它无法被扩展了 4 /* 5 严格模式下,扩展无法扩展的对象会报错,非严格模式下,保持沉默 6 */ 7 person.age=23;
示例四:
1 var person={name:"guo"}; 2 /* 3 isExtensible();判断是否被限制扩展 4 返回true:没有限制 5 返回false:有限制 6 */ 7 alert(Object.isExtensible(person));//====>true. 8 Object.preventExtensions(person);//用于处理对象,让它无法被扩展了 9 alert(Object.isExtensible(person));//=====>false