Object.freeze()凍結對象

用處:

1、一個大的數據對象裏,在你確信它不需要改變的時候,你可以給他freeze(),可以大大的增加性能。

2、也可用作凍結線上的配置文件中的對象,以防有人誤改。

​
const nums = 6;
nums = 7; 
console.log("num==",num);

​

const 聲明一個常量,一旦聲明,常量的值就不能改變,報錯Uncaught TypeError: Assignment to constant variable.

 譯:未捕獲的TypeError:分配給常數變量。意味着不能更改。

 

但是,如果使用 const 聲明的是一個複雜數據類型,比如一個對象,修改其屬性值是可以成功的。

const obj = {'age':18};
obj.age = 20;
console.log("obj",obj)  //obj {age: 20}

 

如果不希望對對象的屬性或屬性值不進行更改,可使用Object.freeze(Object)對對象進行凍結~

參數Object、返回值:均表示被凍結的對象

Object.freeze(obj);  //對象凍結
obj.age = 20;
console.log("obj",obj); //obj {age: 18} 

需要注意的是,使用 Object.freeze()凍結的對象只能保證這個對象的屬性不變,如果對象屬性的值還是一個複雜數據類型,那麼是可以修改成功的。

 const obj_1= {
	"name":'Joyce',
	'test':{
		'age':18
	}
}
obj_1.name = 'spring';
obj_1.test.age = 30;
console.log("obj_1",obj_1.name,obj_1.test.age)  //obj_1 spring 30
Object.freeze(obj_1);
obj_1.name = 'kaliwo';
obj_1.test.age = 30;
console.log("obj_1",obj_1.name,obj_1.test.age)  //oobj_1 Joyce 30
			 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章