JavaScript Object.freeze()

定義和用法

Object.freeze() 方法用于防止對對象進行任何更改。

在非嚴格模式下,Object.freeze() 方法會靜默失敗。

在嚴格模式下,Object.freeze() 方法會拋出 TypeError。

被凍結的對象是只讀的。不允許修改、添加或刪除屬性。

可以使用 Object.isFrozen() 方法來檢查對象是否被凍結。

相關方法:

Object.preventExtensions() 允許修改,但阻止添加屬性。

Object.seal() 允許修改,但阻止添加和刪除屬性。

Object.freeze() 阻止修改、添加和刪除屬性。

Object.isExtensible() 如果對象可擴展,則返回 true。

Object.isSealed() 如果對象是密封的,則返回 true。

Object.isFrozen() 如果對象被凍結,則返回 true。

實例

例子 1

"use strict"
// 創建對象
const person = {
  firstName: "Bill",
  lastName: "Gates",
  age: 50,
  eyeColor: "blue"
};
// 凍結對象
Object.freeze(person);
// 這將拋出錯誤
person.age = 51;

親自試一試

例子 2

const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.freeze(fruits);
// 這將拋出錯誤:
fruits.push("Kiwi");

親自試一試

語法

Object.freeze(object)

參數

參數 描述
object 必需。要凍結的對象。

返回值

類型 描述
Object 被凍結的對象。

瀏覽器支持

Object.freeze() 是 ECMAScript5 (ES5) 的特性。

自 2013 年 7 月起,所有現代瀏覽器均完全支持 ES5(JavaScript 2009):

Chrome Edge Firefox Safari Opera
Chrome 23 IE/Edge 11 Firefox 21 Safari 6 Opera 15
2012 年 9 月 2012 年 9 月 2013 年 4 月 2012 年 7 月 2013 年 7 月