The handler.isExtensible() method is a trap for Object.isExtensible().
var p = new Proxy(target, {
isExtensible: function(target) {
}
});
The following parameter is passed to the isExtensible method. this is bound to the handler.
targetThe isExtensible method must return a boolean value.
The handler.isExtensible() method is a trap for Object.isExtensible().
This trap can intercept these operations:
If the following invariants are violated, the proxy will throw a TypeError:
Object.isExtensible(proxy) must return the same value as Object.isExtensible(target).The following code traps Object.isExtensible().
var p = new Proxy({}, {
isExtensible: function(target) {
console.log('called');
return true;
}
});
console.log(Object.isExtensible(p)); // "called"
// true
The following code violates the invariant.
var p = new Proxy({}, {
isExtensible: function(target) {
return false;
}
});
Object.isExtensible(p); // TypeError is thrown
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of '[[IsExtensible]]' in that specification. | Standard | Initial definition. |
| ECMAScript Latest Draft (ECMA-262) The definition of '[[IsExtensible]]' in that specification. | Draft |
| Desktop | ||||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
| Basic support | ? | ? | 31 | No | ? | ? |
| Mobile | |||||||
|---|---|---|---|---|---|---|---|
| Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
| Basic support | ? | ? | ? | 31 | ? | ? | ? |
| Server | |
|---|---|
| Node.js | |
| Basic support | 6.0.0 |
© 2005–2018 Mozilla Developer Network and individual 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/Proxy/handler/isExtensible