javascript的防篡改对象之preventExtensions()方法

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

 

 

 

 

 

 

posted @ 2014-03-04 10:30  思思博士  阅读(1147)  评论(0编辑  收藏  举报