JavaScript handler.isExtensible() method in JavaScript is a trap for Object.isExtensible() method and it returns a boolean value.
Syntax:
const p = new Proxy(target, { isExtensible: function(target) { } });
Parameters: This method accepts a single parameter as mentioned above and described below:
- target: This parameter is the target object.
Return value: This method returns a Boolean value.
Below examples illustrate the handler.isExtensible() method in JavaScript:
Example 1: In this example, we will set a trap for the extensible property of the object using the handler.isExtensible() method in JavaScript.
const monster1 = { canEvolve: true
}; const handler1 = { isExtensible(target) {
return Reflect.isExtensible(target);
},
preventExtensions(target) {
target.canEvolve = false ;
return Reflect.preventExtensions(target);
}
}; const proxy1 = new Proxy(monster1, handler1);
console.log(Object.isExtensible(proxy1)); console.log(monster1.canEvolve); console.log(Object.preventExtensions(proxy1)); console.log(Object.isExtensible(proxy1)); console.log(monster1.canEvolve); |
Output:
true true [object Object] false false
Example 2: In this example, we will set a trap for the extensible property of the object using the handler.isExtensible() method in JavaScript.
const p = new Proxy({}, {
isExtensible: function (target) {
console.log( 'isExtensible method' );
return true ;
}
}); console.log(Object.isExtensible(p)); let a = { canEvolve: true
}; let b = { isExtensible(target) {
return true ;
},
}; const proxy1 = new Proxy(a, b);
console.log(Object.isExtensible(proxy1)); |
Output:
"isExtensible method" true true
Supported Browsers: The browsers supported by handler.isExtensible() method are listed below:
- Google Chrome 49 and above
- Edge 12 and above
- Firefox 31 and above
- Opera 36 and above
- Safari 10 and above
We have a complete list of Javascript Proxy/handler methods, to check those go through the Javascript Proxy/handler Reference article.