Object.preventExtensions Function (JavaScript)

Prevents the addition of new properties to an object.




Required. The object to make non-extensible.

Return Value

The object that is passed to the function.


If the object argument is not an object, a TypeError exception is thrown.


The Object.preventExtensions function makes an object non-extensible, so that new named properties cannot be added to it. After an object is made non-extensible, it cannot be made extensible.

For information about how to set property attributes, see Object.defineProperty Function.

The following related functions prevent the modification of object attributes.

Function Object is made non-extensible configurable is set to false for each property writable is set to false for each property
Object.preventExtensions Yes No No
Object.seal Yes Yes No
Object.freeze Yes Yes Yes

The following functions return true if all of the conditions marked in the following table are true.

Function Object is extensible? configurable is false for all properties? writable is false for all data properties?
Object.isExtensible Yes No No
Object.isSealed No Yes No
Object.isFrozen No Yes Yes


The following example illustrates the use of the Object.preventExtensions function.

// Create an object that has two properties.  
var obj = { pasta: "spaghetti", length: 10 };  

// Make the object non-extensible.  

// Try to add a new property, and then verify that it is not added.  
obj.newProp = 50;  

// Output:  
// false  
// undefined  


Supported in the following document modes: Internet Explorer 9 standards, Internet Explorer 10 standards, and Internet Explorer 11 standards. Also supported in Store apps (Windows 8 and Windows Phone 8.1). See Version Information.
Not supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards.

See Also

Object.seal Function
Object.freeze Function
Object.isExtensible Function
Object.isSealed Function
Object.isFrozen Function