Reflect.isExtensible()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2016å¹´9æ.
Reflect.isExtensible() ã¯éçã¡ã½ããã§ããã㯠Object.isExtensible() ã«ä¼¼ã¦ãã¾ããããã¯ãªãã¸ã§ã¯ããæ¡å¼µå¯è½ã§ãããï¼ãªãã¸ã§ã¯ãã«è¿½å ãããæ°ããããããã£ãæã¦ããã©ããï¼ã夿ãã¾ãã
試ãã¦ã¿ã¾ããã
const object1 = {};
console.log(Reflect.isExtensible(object1));
// äºæ³ãããçµæ: true
Reflect.preventExtensions(object1);
console.log(Reflect.isExtensible(object1));
// äºæ³ãããçµæ: false
const object2 = Object.seal({});
console.log(Reflect.isExtensible(object2));
// äºæ³ãããçµæ: false
æ§æ
Reflect.isExtensible(target)
弿°
target-
æ¡å¼µã§ãããã©ããããã§ãã¯ãã対象ã®ãªãã¸ã§ã¯ãã
è¿å¤
å¯¾è±¡ãæ¡å¼µå¯è½ãã©ããã示ãè«çå¤ (Boolean)ã
ä¾å¤
TypeError-
targetããªãã¸ã§ã¯ãã§ã¯ãªãå ´åã«çºçãã¾ãã
解説
Reflect.isExtensible() ã¯ããªãã¸ã§ã¯ããæ¡å¼µå¯è½ãã©ããã調ã¹ãåå°çãªæå³ã¥ããæä¾ãã¾ããObject.isExtensible() ã¨ã®å¯ä¸ã®éãã¯ããªãã¸ã§ã¯ã以å¤ã®å¯¾è±¡ã®å¦çæ¹æ³ã§ããReflect.isExtensible() ã¯å¯¾è±¡ããªãã¸ã§ã¯ãã§ãªãå ´åã« TypeError ãçºçãã¾ãããObject.isExtensible() ã¯ãªãã¸ã§ã¯ã以å¤ã®å¯¾è±¡ã«å¯¾ãã¦å¸¸ã« false ãè¿ãã¾ãã
Reflect.isExtensible() ã¯ãtarget ã® [[IsExtensible]] ãªãã¸ã§ã¯ãå
é¨ã¡ã½ãã ãå¼ã³åºãã¾ãã
ä¾
>Reflect.isExtensible() ã®ä½¿ç¨
Object.isExtensible() ãåç
§ãã¦ãã ããã
// æ°ãããªãã¸ã§ã¯ãã¯æ¡å¼µå¯è½ã
const empty = {};
Reflect.isExtensible(empty); // true
// ...ãããã夿´ã§ãã¾ã
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false
// å°å°ããããªãã¸ã§ã¯ãã¯æ¡å¼µã§ããªãããã«å®ç¾©ãããã
const sealed = Object.seal({});
Reflect.isExtensible(sealed); // false
// åçµããããªãã¸ã§ã¯ããæ¡å¼µã§ããªãããã«å®ç¾©ãããã
const frozen = Object.freeze({});
Reflect.isExtensible(frozen); // false
Object.isExtensible() ã¨ã®éã
ãã®ã¡ã½ããã¸ã®æåã®å¼æ°ããªãã¸ã§ã¯ãã§ã¯ãªãã£ã (ããªããã£ãã§ãã£ã) å ´åããã㯠TypeError ãå¼ãèµ·ããã¾ããObject.isExtensible() ã ã¨ããªãã¸ã§ã¯ãã§ã¯ãªãæåã®å¼æ°ã¯ãªãã¸ã§ã¯ãã«å¼·å¶çã«å¤æããã¾ãã
Reflect.isExtensible(1);
// TypeError: 1 ã¯ãªãã¸ã§ã¯ãã§ã¯ãªã
Object.isExtensible(1);
// false
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-reflect.isextensible > |