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