JavaScript Object.freeze()

定义和用法

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

在非严格模式下,Object.freeze() 方法会静默失败。

在严格模式下,Object.freeze() 方法会抛出 TypeError。

被冻结的对象是只读的。不允许修改、添加或删除属性。

可以使用 Object.isFrozen() 方法来检查对象是否被冻结。

相关方法:

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

Object.seal() Pozwala na modyfikację, ale zapobiega dodawaniu i usuwaniu właściwości.

Object.freeze() Zapobiega modyfikacji, dodawaniu i usuwaniu właściwości.

Object.isExtensible() Jeśli obiekt jest rozszerzalny, zwraca true.

Object.isSealed() Jeśli obiekt jest zamknięty, zwraca true.

Object.isFrozen() Jeśli obiekt jest zamarznięty, zwraca true.

Przykład

Przykład 1

"use strict"
// Tworzenie obiektu
const person = {
  firstName: "Bill",
  lastName: "Gates",
  age: 50,
  eyeColor: "blue"
};
// Zamarznięcie obiektu
Object.freeze(person);
// To spowoduje wywołanie błędu
person.age = 51;

Spróbuj sam

Przykład 2

const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.freeze(fruits);
// To spowoduje wywołanie błędu:
fruits.push("Kiwi");

Spróbuj sam

Gramatyka

Object.freeze(object)

Parametr

Parametr Opis
object Wymagane. Obiekt do zamarznięcia.

Zwrócona wartość

Typ Opis
Object Zamarznięte obiekty.

Obsługa przeglądarek

Object.freeze() To cechy ECMAScript5 (ES5).

Od lipca 2013 roku wszystkie nowoczesne przeglądarki obsługują w pełni ES5 (JavaScript 2009):

Chrome Edge Firefox Safari Opera
Chrome 23 IE/Edge 11 Firefox 21 Safari 6 Opera 15
Wrzesień 2012 roku Wrzesień 2012 roku Kwiecień 2013 roku Lipiec 2012 roku Lipiec 2013 roku