docs.rodeo

MDN Web Docs mirror

Reflect.preventExtensions()

{{JSRef}} 

The Reflect.preventExtensions() static method is like {{jsxref("Object.preventExtensions()")}} . It prevents new properties from ever being added to an object (i.e., prevents future extensions to the object).

{{InteractiveExample("JavaScript Demo: Reflect.preventExtensions()")}} 

const object1 = {};

console.log(Reflect.isExtensible(object1));
// Expected output: true

Reflect.preventExtensions(object1);

console.log(Reflect.isExtensible(object1));
// Expected output: false

Syntax

Reflect.preventExtensions(target)

Parameters

Return value

A {{jsxref("Boolean")}}  indicating whether or not the target was successfully set to prevent extensions.

Exceptions

Description

Reflect.preventExtensions() provides the reflective semantic of preventing extensions of an object. The differences with {{jsxref("Object.preventExtensions()")}}  are:

Reflect.preventExtensions() invokes the [[PreventExtensions]] object internal method of target.

Examples

Using Reflect.preventExtensions()

See also {{jsxref("Object.preventExtensions()")}} .

// Objects are extensible by default.
const empty = {};
Reflect.isExtensible(empty); // true

// ...but that can be changed.
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false

Difference with Object.preventExtensions()

If the target argument to this method is not an object (a primitive), then it will cause a {{jsxref("TypeError")}} . With {{jsxref("Object.preventExtensions()")}} , a non-object target will be returned as-is without any errors.

Reflect.preventExtensions(1);
// TypeError: 1 is not an object

Object.preventExtensions(1);
// 1

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN