The handler.preventExtensions function serves to intercept the Object.preventExtensions method. When an object is configured to prevent extensions, it becomes impossible to introduce new properties to that object.
Syntax
Example
preventExtensions: function(target)
Parameters
target : The target object.
Return value
Return a Boolean value.
Browser Support
| Chrome | 49 |
|---|---|
Edge |
12 |
| Firefox | 22 |
| Opera | 36 |
Example 1
Example
<script>
const proxy = new Proxy({}, {
preventExtensions: function(target) {
Object.preventExtensions(target);
return !Object.isExtensible(target);
}
});
document.writeln(Object.isExtensible(proxy));
//expected output:true
</script>
Output:
Example 2
Example
<script>
const proxy1 = new Proxy({}, {
preventExtensions: function(target) {
Object.preventExtensions(target);
return !Object.isExtensible(target);
}
});
document.writeln(Object.isExtensible(proxy1));
//expected output: true
document.writeln('<br/>');
document.writeln(Object.preventExtensions(proxy1));
// Object.preventExtensions prevent of object to access.
//expected output: [object Object]
document.writeln('<br/>');
document.writeln(Object.isExtensible(proxy1));
//expected output: false
</script>
Output:
Output
true
[object Object]
false
Example 3
Example
<script>
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);
// expected output: false
Object.preventExtensions(proxy);
document.writeln("<br/>");
document.writeln(x.first);
// expected output: false
</script>
Output:
Output
false
false