TypeError: "x" is not a non-null object
æç¤ºä¿¡æ¯
TypeError: "x" is not a non-null object (Firefox) TypeError: Property description must be an object: "x" (Chrome) TypeError: Invalid value used in weak set (Chrome)
é误类å
TypeError
åªéåºéäºï¼
卿å¾
åºç°å¯¹è±¡ç±»åçå¼çå°æ¹è没ææä¾ãnull 䏿¯å¯¹è±¡ç±»åï¼å æ¤ä¸èµ·ä½ç¨ãå¿
é¡»å¨ç»å®çåºæ¯ä¸æä¾ä¸ä¸ªåéç对象ã
示ä¾
>ææç屿§æè¿°å¨
å½ä½¿ç¨è¯¸å¦ Object.create() æ Object.defineProperty() å{jsxref("Object.defineProperties()")}} æ¹æ³æ¶ï¼å¯éç屿§æè¿°å¨åæ°éè¦æä¾ä¸ä¸ªæè¿°å¨å¯¹è±¡ãæä¾é对象类åçå¼ï¼ä¾å¦æ°åï¼å°ä¼æ¥éï¼
js
Object.defineProperty({}, "key", 1);
// TypeError: 1 is not a non-null object
Object.defineProperty({}, "key", null);
// TypeError: null is not a non-null object
ä¸ä¸ªåæ³çæè¿°å¨å¯¹è±¡ç±»ä¼¼äºä¸é¢è¿æ ·ï¼
js
Object.defineProperty({}, "key", { value: "foo", writable: false });
WeakMap å WeakSet 对象éè¦å¯¹è±¡ç±»åçé®
WeakMap å WeakSet 对象åªè½åå¨å¯¹è±¡ç±»åçé®ï¼èä¸è½ä½¿ç¨å
¶ä»ç±»åçã
js
var ws = new WeakSet();
ws.add("foo");
// TypeError: "foo" is not a non-null object
ç¨å¯¹è±¡ç±»åç弿¥æ¿æ¢ï¼
js
ws.add({ foo: "bar" });
ws.add(window);