Reflect.preventExtensions()
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.preventExtensions() ã¯éçã¡ã½ããã§ãObject.preventExtensions() ã«ä¼¼ã¦ãã¾ãããã§ã«ããããã£ã追å ããããªãã¸ã§ã¯ãã«ãæ°ããããããã£ãæå¶ãã¾ã (ã¤ã¾ãããªãã¸ã§ã¯ãã®ãããªãæ¡å¼µãæå¶ãã¾ã)ã
試ãã¦ã¿ã¾ããã
const object = {};
console.log(Reflect.isExtensible(object));
// äºæ³ãããçµæ: true
Reflect.preventExtensions(object);
console.log(Reflect.isExtensible(object));
// äºæ³ãããçµæ: false
æ§æ
Reflect.preventExtensions(target)
弿°
target-
æ¡å¼µãææ¢ãã対象ã®ãªãã¸ã§ã¯ãã
è¿å¤
è«çå¤ (Boolean) ã§ãå¯¾è±¡ãæ¡å¼µã®ææ¢ã®è¨å®ã«æåãããã©ããã表ãã¾ãã
ä¾å¤
TypeError-
targetããªãã¸ã§ã¯ãã§ã¯ãªãå ´åã«çºçãã¾ãã
解説
Reflect.preventExtensions() ã¯ããªãã¸ã§ã¯ãã®æ¡å¼µã鲿¢ããåå°çæå³ã¥ããæä¾ãã¾ããObject.preventExtensions() ã¨ã®ç¸éç¹ã¯ä»¥ä¸ã®éãã§ãã
Reflect.preventExtensions()ã¯ã対象ããªãã¸ã§ã¯ãã§ãªãå ´åã«TypeErrorãçºçããã¾ãã䏿¹ãObject.preventExtensions()ã¯ããªãã¸ã§ã¯ãã§ãªã対象ã常ã«ãã®ã¾ã¾è¿ãã¾ããReflect.preventExtensions()ã¯ãã¿ã¼ã²ãããæ¡å¼µæ©è½ã®é²æ¢ã«æåãããã©ããã示ãè«çå¤ (Boolean) ãè¿ãã¾ãã䏿¹ãObject.preventExtensions()ã¯ã¿ã¼ã²ãããªãã¸ã§ã¯ããè¿ãã¾ãã
Reflect.preventExtensions() ã¯ãtarget ã® [[PreventExtensions]] ãªãã¸ã§ã¯ãå
é¨ã¡ã½ãã ãå¼ã³åºãã¾ãã
ä¾
>Reflect.preventExtensions() ã®ä½¿ç¨
Object.preventExtensions() ãåç
§ãã¦ãã ããã
// ãªãã¸ã§ã¯ãã¯æ¢å®ã§æ¡å¼µå¯è½ã
const empty = {};
Reflect.isExtensible(empty); // true
// ...ãããã夿´ã§ããã
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false
Object.preventExtensions() ã¨ã®éã
ãã®ã¡ã½ããã¸ã®æåã®å¼æ°ããªãã¸ã§ã¯ãã§ã¯ãªã (ããªããã£ãã§ãã) å ´åã TypeError ãçºçãã¾ãã Object.preventExtensions() ã§ã¯ã target ããªãã¸ã§ã¯ãã§ã¯ãªãå ´åã¯ãªãã¸ã§ã¯ãã«å¼·å¶çã«å¤æããã¾ãã
Reflect.preventExtensions(1);
// TypeError: 1 is not an object
Object.preventExtensions(1);
// 1
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-reflect.preventextensions> |