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


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


JavaScript Object.seal()方法用于密封对象。密封对象不允许添加新属性,并将所有现有属性标记为不可配置。尽管当前属性的值可以更改,只要它们是可写的。要密封的对象作为参数传递,该方法返回已密封的对象。

用法:

Object.seal(obj)

参数:

  • obj:它是必须密封的物体。

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

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

示例 1:在此示例中,对象 “ob2” 已被分配了对象 “obj1” 的属性,并且它已被密封,因此无法添加新值。由于密封对象允许更改现有属性,因此 obj2 的属性 1 的值已更新。

Javascript


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

输出:

"new_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); 
  
// Sealing the object using object.seal() method 
let o = Object.seal(obj); 
  
// Updating the properties of the object  
delete obj.prop; 
  
// Displaying the updated properties of the object  
console.log(obj); 
  
// Updating the properties of the sealed 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 { name: "chris" }

应用:

  • Object.seal() 用于密封对象和数组,使对象不可变。

异常:

  • 如果传递的参数不是对象,则会导致TypeError。
  • 删除密封对象或向密封对象添加属性将失败或引发类型错误。
  • 将数据属性转换为访问器或反之亦然将引发 TypeError。

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

支持的浏览器:

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


相关用法


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