Object() æé 彿°
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Object() æé 彿°å°è¾å
¥è½¬æ¢ä¸ºä¸ä¸ªå¯¹è±¡ãå®çè¡ä¸ºåå³äºè¾å
¥çç±»åã
è¯æ³
new Object(value)
Object(value)
åæ°
value-
ä»»æå¼ã
è¿åå¼
å½è°ç¨æè
æé Object() æé 彿°æ¬èº«æ¶ï¼å
¶è¿å弿¯ä¸ä¸ªå¯¹è±¡ï¼
- å¦æè¯¥å¼æ¯
nullæèundefinedï¼å®ä¼çæå¹¶è¿åä¸ä¸ªç©ºå¯¹è±¡ã - å¦æè¯¥å¼å·²ç»æ¯ä¸ä¸ªå¯¹è±¡ï¼åè¿å该å¼ã
- å¦åï¼å®å°è¿åä¸ç»å®å¼å¯¹åºçç±»åç对象ãä¾å¦ï¼ä¼ é
BigIntåºæ¬ç±»åä¼è¿åä¸ä¸ªBigIntå°è£ 对象ã
å½éè¿ç»§æ¿ Object çç±»çæé 彿°ä¸ç super() éå¼è°ç¨ Object() æ¶ï¼å®ä»¥ new.target.prototype 为åååå§åä¸ä¸ªæ°å¯¹è±¡ãä¼ éç» super() çä»»æå¼é½å°è¢«å¿½ç¥ââä¾å¦ï¼å³ä½¿ä½ ä¼ éä¸ä¸ªæ°åï¼æé 彿°ä¸ç this å¼ä¹ä¸ä¼åæ Number å®ä¾ã
示ä¾
>å建ä¸ä¸ªæ°å¯¹è±¡
const o = new Object();
o.foo = 42;
console.log(o);
// { foo: 42 }
ä½¿ç¨ undefined å null ç±»åè°ç¨ Object
以ä¸ç¤ºä¾å¨ o ä¸åå¨ä¸ä¸ªç©º Object 对象ï¼
const o = new Object();
const o = new Object(undefined);
const o = new Object(null);
è·å BigInt å Symbol çå°è£ 对象
å½ç¨ new è°ç¨ BigInt() å Symbol() æé 彿°æ¶ä¼æåºä¸ä¸ªé误ï¼ä»¥é»æ¢å建å°è£
对象è䏿¯åºæ¬ç±»åå¼ç常è§é误ã为è¿äºç±»åå建å°è£
对象çå¯ä¸æ¹æ³æ¯ä½¿ç¨å®ä»¬è°ç¨ Object()ï¼
const numberObj = new Number(1);
console.log(typeof numberObj); // "object"
const bigintObj = Object(1n);
console.log(typeof bigintObj); // "object"
const symbolObj = Object(Symbol("foo"));
console.log(typeof symbolObj); // "object"
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-object-constructor> |