当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Object freeze()用法及代码示例


Object.freeze() 方法用于冻结对象。冻结对象不允许将新属性添加到该对象,并防止删除或更改现有属性。 Object.freeze()保留了对象的可枚举性、可配置性、可写性和原型。它返回传递的对象并且不创建冻结副本。

用法:

Object.freeze(obj)

参数:

  • obj: 它是必须被冻结的对象。

返回值:Object.freeze() 返回传递给函数的对象。

下面提供了上述函数的示例。

示例 1:在此示例中,对象 “obj2” 已从对象 “obj1” 分配了属性,并且 “obj1” 的属性被冻结,因此阻止将新属性和值添加到 “obj2”。

Javascript


// creating an object constructor and assigning values to it  
const obj1 = { property1: 'initial_data' }; 
  
// creating a second object which will freeze 
// the properties of the first object 
const obj2 = Object.freeze(obj1); 
  
// Updating the properties of the frozen object 
obj2.property1 = 'new_data'; 
  
// Displaying the properties of the  frozen object  
console.log(obj2.property1);

输出:

"initial_data"

示例 2:在此示例中,对象 “obj” 已被分配“prop: function”,由于对象“obj 未冻结”,该对象后来被删除。之后,一个新对象“o”被分配了“obj”的冻结值,这阻止了它进一步更新。

Javascript


// creating an object constructor and assigning values to it 
let obj = { prop: function () { }, name: 'adam' }; 
  
// Displaying the properties of the object created  
console.log(obj); 
  
// Updating the properties of the object  
obj.name = 'billy'; 
delete obj.prop; 
// Displaying the updated properties of the object 
console.log(obj); 
  
// Freezing the object using object.freeze() method  
let o = Object.freeze(obj); 
  
// Updating the properties of the frozen object  
obj.name = 'chris'; 
  
// Displaying the properties of the  frozen object --> 
console.log(obj);

输出:

Object { prop: function () {}, name: "adam" }
Object { name: "billy" }
Object { name: "billy" }

应用:

  • Object.freeze() 用于冻结对象和数组,或使对象不可变。

我们有 Javascript 对象方法的完整列表,要检查这些方法,请阅读这篇JavaScript Object Complete Reference 文章。

支持的浏览器:

  • 谷歌浏览器 6.0 及以上版本
  • Internet Explorer 9.0 及以上版本
  • Mozilla 4.0 及以上版本
  • Opera 11.1 及以上版本
  • Safari 5.0 及以上版本


相关用法


注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 JavaScript Object freeze() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。