當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。