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 及以上版本
相關用法
- JavaScript Object toLocaleString()用法及代碼示例
- JavaScript Object toString()用法及代碼示例
- JavaScript Object valueOf()用法及代碼示例
- JavaScript Object hasOwnProperty()用法及代碼示例
- JavaScript Object getOwnPropertyDescriptor()用法及代碼示例
- JavaScript Object getOwnPropertyDescriptors()用法及代碼示例
- JavaScript Object getOwnPropertyNames()用法及代碼示例
- JavaScript Object getOwnPropertySymbols()用法及代碼示例
- JavaScript Object __defineGetter__()用法及代碼示例
- JavaScript Object keys()用法及代碼示例
- JavaScript Object propertyIsEnumerable()用法及代碼示例
- JavaScript Object getPrototypeOf()用法及代碼示例
- JavaScript Object is()用法及代碼示例
- JavaScript Object values()用法及代碼示例
- JavaScript Object isPrototypeOf()用法及代碼示例
- JavaScript Object hasOwn()用法及代碼示例
- JavaScript Object isFrozen()用法及代碼示例
- JavaScript Object entries()用法及代碼示例
- JavaScript Object isSealed()用法及代碼示例
- JavaScript Object create()用法及代碼示例
- JavaScript Object seal()用法及代碼示例
- JavaScript Object assign()用法及代碼示例
- JavaScript Object.keys()用法及代碼示例
- JavaScript Object.values()用法及代碼示例
- JavaScript Object.entries()用法及代碼示例
注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 JavaScript Object freeze() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。