å¨ä½¿ç¨ new
è¿ç®ç¬¦è°ç¨å½æ°æ¶ï¼æé 彿°ç prototype
屿§å°æä¸ºæ°å¯¹è±¡çååã
function Ctor() {}
const inst = new Ctor();
console.log(Object.getPrototypeOf(inst) === Ctor.prototype); // true
å
³äºæé 彿°ç prototype
屿§ä¸ç»æå¯¹è±¡çååä¹é´çç¸äºä½ç¨ï¼ä½ å¯ä»¥æ¥çç»§æ¿ä¸åå龿¥äºè§£æ´å¤ã
ä¸ä¸ªå
·æ prototype
屿§ç彿°ä¹å¹¶ä¸ä»£è¡¨å
¶æèµæ ¼ä½ä¸ºæé 彿°ãä¾å¦ï¼function* æ¥æ prototype
屿§ï¼ä½å®ä¸è½éè¿ new
è¿ç®ç¬¦æ¥è°ç¨ã
async function* asyncGeneratorFunction() {}
function* generatorFunction() {}
åä¹ï¼çæå¨å½æ°é常å¨å®ä»¬ä¸è¢« new
è¿ç®ç¬¦è°ç¨çæ¶å被ç¨å°å®ä»¬ç prototype
屿§ã prototype
屿§ä¼ä½ä¸ºè¿åç Generator
对象çååã
å¦å¤ï¼ä¸äºå½æ°ä¹å¯è½å¨éè¿ new
è¿ç®ç¬¦è°ç¨çæ
åµä¸æ æ¡ä»¶æåºï¼å³ä¾¿å®ä»¬å¯è½å
·æ prototype
ãä¾å¦ï¼Symbol()
å BigInt()
彿°ä¼å¨å®ä»¬éè¿ new
è¿ç®ç¬¦æ¥è°ç¨æ¶æåºï¼å 为 Symbol.prototype
and BigInt.prototype
åªæ¯ç¨æ¥ä¸ºåå§å¼æä¾æ¹æ³çï¼è¿æ¶ä¸åºè¯¥ç´æ¥æå»ºå
è£
å¨å¯¹è±¡ã
ä¸åç彿°ä¸å
·æ prototype
屿§ï¼å æ¤ä¸è½æä¸ºæé 彿°ï¼å³ä¾¿åç»æå¨èµäºäº prototype
屿§ï¼
const method = { foo() {} }.foo;
const arrowFunction = () => {};
async function asyncFunction() {}
ä¸ååå¯ä»¥æä¸ºåæ³çæé 彿°ï¼å 为å®ä»¬å
·æ prototype
ï¼
class Class {}
function fn() {}
ç»å®å½æ°ä¸å
·æ prototype
屿§ï¼ä½æ¯å¯è½æ¯å¯æé çãå½å®è¢«æé çæ¶åï¼ç®æ 彿°å°ä¼è¢«æé ï¼å¦æç®æ 彿°æ¯å¯æé çï¼å°ä¼è¿åä¸ä¸ªæ®éçå®ä¾ã
const boundFunction = function () {}.bind(null);
é»è®¤æ
åµä¸ï¼å½æ°ç prototype
æ¯ä¸ä¸ªæ®éç对象ãè¿ä¸ªå¯¹è±¡å
·æä¸ä¸ªå±æ§ï¼constructor
ã宿¯å¯¹è¿ä¸ªå½æ°æ¬èº«çä¸ä¸ªå¼ç¨ã constructor
屿§æ¯å¯ç¼è¾ãå¯é
ç½®ä½ä¸å¯æä¸¾çã
妿彿°ç prototype
被èµäºäº Object
以å¤çå¼ï¼åå½å®è¢« new
è¿ç®ç¬¦è°ç¨æ¶ï¼è¿å对象çååå°ä¼æå Object.prototype
ãï¼æ¢å¥è¯è¯´ï¼new
è¿ç®ç¬¦ä¼å¿½ç¥å®ç prototype
屿§å¹¶æé ä¸ä¸ªæ®é对象ãï¼
function Ctor() {}
Ctor.prototype = 3;
console.log(Object.getPrototypeOf(new Ctor()) === Object.prototype); // true
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4