JavaScript | handler.preventExtensions() Method
The handler.preventExtensions() method in JavaScript is a trap for Object.preventExtensions() method and it returns a boolean value.
Syntax:
const p = new Proxy(target, { preventExtensions: function(target) { } });
Parameters: This method accepts single parameter target which holds the target object.
Return value: This method returns a boolean value.
Below examples illustrate the handler.preventExtensions() method in JavaScript:
Example 1:
<script> const monster1 = { canEvolve: true }; const handler1 = { preventExtensions(target) { target.canEvolve = false ; Object.preventExtensions(target); return true ; } }; const proxy1 = new Proxy(monster1, handler1); document.writeln(monster1.canEvolve); document.writeln( "<br>" ); document.writeln(Object.preventExtensions(proxy1)); document.writeln( "<br>" ); document.writeln(monster1.canEvolve); document.writeln( "<br>" ); const proxy = new Proxy({}, { preventExtensions: function (target) { Object.preventExtensions(target); return !Object.isExtensible(target); } }); document.writeln(Object.isExtensible(proxy)); </script> |
Output:
true [object Object] false true
Example 2:
<script> const p = new Proxy({}, { preventExtensions: function (target) { document.writeln( 'preventExtensions()' + "<br>" ); document.writeln(Object.preventExtensions(target)+ "<br>" ); return true ; } }); document.writeln(Object.preventExtensions(p)+ "<br>" ); var x = { first: false }; var y ={ preventExtensions(target) { target.canEvolve = false ; Object.preventExtensions(target); return true ; } }; var proxy = new Proxy(x, y); document.writeln(x.first); Object.preventExtensions(proxy); document.writeln( "<br/>" ); document.writeln(x.first); </script> |
Output:
preventExtensions() [object Object] [object Object] false false
Supported Browsers: The browsers supported by handler.preventExtensions() method are listed below:
- Google Chrome
- Firefox
- Opera
- Safari
- Edge