Object.defineProperties()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
Object.defineProperties() ã¡ã½ããã¯ããªãã¸ã§ã¯ãã«ç´æ¥æ°ããããããã£ãå®ç¾©ãããããã¯æ¢åã®ããããã£ã夿´ãã¦ããã®ãªãã¸ã§ã¯ããè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const object = {};
Object.defineProperties(object, {
property1: {
value: 42,
writable: true,
},
property2: {},
});
console.log(object.property1);
// äºæ³ãããçµæ: 42
æ§æ
Object.defineProperties(obj, props)
弿°
obj-
ããããã£ãå®ç¾©ã¾ãã¯å¤æ´ãããªãã¸ã§ã¯ãã
props-
ãã¼ãå®ç¾©ã¾ãã¯å¤æ´ãããããããã£ã®ååã表ããå¤ããããã®ããããã£ãè¨è¿°ãããªãã¸ã§ã¯ãã§ãããªãã¸ã§ã¯ãã§ãã
propsã®åå¤ã¯ããã¼ã¿è¨è¿°åãã¢ã¯ã»ãµã¼è¨è¿°åã®ããããã§ãªããã°ãªãã¾ãããã両æ¹ãæå®ãããã¨ã¯ã§ãã¾ãã (詳細ã¯Object.defineProperty()ãåç §ãã¦ãã ãã)ããã¼ã¿è¨è¿°åããã³ã¢ã¯ã»ãµã¼è¨è¿°åã¯ããªãã·ã§ã³ã§ä»¥ä¸ã®ãã¼ãå«ããã¨ãã§ãã¾ãã
configurable-
ããããã£ã®è¨è¿°åã夿´ã§ããããããã£ã対å¿ãããªãã¸ã§ã¯ãããåé¤ã§ããã¨ãã®ã¿
trueã æ¢å®å¤ã¯falseã enumerable-
対å¿ãããªãã¸ã§ã¯ãã®ããããã£ãåæããã¨ã表示ãããå ´åã®ã¿
trueã æ¢å®å¤ã¯falseã
ãã¼ã¿è¨è¿°åã«ã¯ä»¥ä¸ã®ãªãã·ã§ã³ã®ãã¼ãããã¾ãã
value-
ããããã£ã«é¢é£ã¥ããå¤ã JavaScript ã§æå¹ãªä»»æã®å¤ã§ã (æ°å¤ããªãã¸ã§ã¯ãã颿°ãªã©)ã æ¢å®å¤ã¯
undefinedã writable-
ããããã£ã«é¢é£ã¥ããããå¤ãassignment operatorã§å¤æ´ã§ããå ´åã®ã¿
trueã æ¢å®å¤ã¯falseãã¢ã¯ã»ãµã¼è¨è¿°åã«ã¯ã以ä¸ã®ãªãã·ã§ã³ã®ãã¼ãããã¾ãã
get-
ããããã£ã®ã²ãã¿ã¼ã¨ãã¦ç¨ãããã颿°ãã²ãã¿ã¼ããªããã°
undefinedã«ãªãã¾ãã颿°ã®è¿å¤ãããããã£ã®å¤ã¨ãã¦ä½¿ç¨ããã¾ãã æ¢å®å¤ã¯undefinedã set-
ããããã£ã®ã»ãã¿ã¼ã¨ãã¦ç¨ãããã颿°ãã»ãã¿ã¼ããªããã°
undefinedã«ãªãã¾ãã颿°ã¯ãã ã²ã¨ã¤ã®å¼æ°ã¨ãã¦ãããããã£ã«ä»£å ¥ãããæ°ããªå¤ãååãã¾ãã æ¢å®å¤ã¯undefinedã
è¨è¿°åã
value,writable,getsetãã¼ã®ãããã§ããªãå ´åã¯ããã¼ã¿è¨è¿°åã¨ãã¦æ±ããã¾ããè¨è¿°åã«valueã¾ãã¯writableã¨getã¾ãã¯setãã¼ã®ä¸¡æ¹ããã£ãå ´åã¯ãä¾å¤ãçºçãã¾ãã
è¿å¤
颿°ã«æ¸¡ããããªãã¸ã§ã¯ãã
ä¾
>Object.defineProperties ã®ä½¿ç¨
const obj = {};
Object.defineProperties(obj, {
property1: {
value: true,
writable: true,
},
property2: {
value: "Hello",
writable: false,
},
// etc. etc.
});
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.defineproperties> |