The static Reflect.preventExtensions()
method prevents new properties from ever being added to an object (i.e., prevents future extensions to the object). It is similar to Object.preventExtensions()
, but with some differences.
Reflect.preventExtensions()
Try it
Syntax
Reflect.preventExtensions(target)
Parameters
-
target
-
The target object on which to prevent extensions.
Return value
A Boolean
indicating whether or not the target was successfully set to prevent extensions.
Exceptions
Description
The Reflect.preventExtensions()
method allows you to prevent new properties from ever being added to an object (i.e., prevents future extensions to the object). It is similar to Object.preventExtensions()
.
Examples
Using Reflect.preventExtensions()
See also Object.preventExtensions()
.
// Objects are extensible by default. let empty = {} Reflect.isExtensible(empty) // === true // ...but that can be changed. Reflect.preventExtensions(empty) Reflect.isExtensible(empty) // === false
Difference from Object.preventExtensions()
If the target
argument to this method is not an object (a primitive), then it will cause a TypeError
. With Object.preventExtensions()
, a non-object target
will be coerced to an object.
Reflect.preventExtensions(1) // TypeError: 1 is not an object Object.preventExtensions(1) // 1
Specifications
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
preventExtensions |
49
|
12
|
42
|
No
|
36
|
10
|
49
|
49
|
42
|
36
|
10
|
5.0
|
1.0
|
6.0.0
|
See also
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions