JavaScriptã®ãããã¿ã¤ããã§ã¤ã³ãå³ã§ç解ãã
javascriptã«ããããããã¿ã¤ããã§ã¤ã³ã¨ãã®æãç«ã¡ãå³ã«ãããèªåã®ç解ã®å©ãã«ãªãã®ã§ã¯ã¨æããcacooã§ãã©ã¤ãã¦ã¿ã¾ãã
ãããã¿ã¤ããã§ã¤ã³ã¨ã¯
ECMA-262ã«ããã¨ä»¥ä¸ã
ãªãã¸ã§ã¯ãã®ããããã£ã¸ãåç §ãããå ´åããã®åç §ã¯ããããã¿ã¤ããã§ã¼ã³ä¸ã§ãã®ååã®ããããã£ãæã¤æåã®ãªãã¸ã§ã¯ãã®ããããã£ã¸ã®åç §ã§ãããè¨ããããã°ãã¾ãç´æ¥æå®ããããªãã¸ã§ã¯ããããã®ããããã£ã®æç¡ãæ¤æ»ããã; ãã®ãªãã¸ã§ã¯ããæå®ãããããããã£ãæã¤å ´åããããåç §ããããããã£ã§ãã; ãã®ãªãã¸ã§ã¯ããæå®ã®ããããã£ãæããªãå ´åããã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã次ã«æ¤æ»ããã; 以ä¸åæ§ã«ç¶ãã
Under Translation of ECMA-262 3rd Edition 4 æ¦è¦ (Overview)
ãã£ããããã¨ããããã£ãåç §ããã¨ãã«ãããã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ããã辿ã£ã¦ããä»çµã¿ãã¨ãã£ãã¨ããã§ããããã
ã²ã¨ã¤ã®ãããã¯ããããããªãã¸ã§ã¯ãã§ãã
éç¶ã®ç¢å°ã§ãä¸é£ã®ãããã¿ã¤ããã§ã¼ã³ã表ç¾ãã¦ã¾ãããªãã¸ã§ã¯ãããçããç¢å°ã®å·®ããªãã¸ã§ã¯ãããããã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ããã§ãã
ã¤ã¾ããã®å³ã¯
- éãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã¯ã赤ãªãã¸ã§ã¯ã
- 赤ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã¯ãé»ãªãã¸ã§ã¯ã
- é»ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã¯ãç½ãªãã¸ã§ã¯ã
ã¨ãããã¨ã表ç¾ãã¦ãã¾ãã
éãªãã¸ã§ã¯ãã«å¯¾ãã¦hogeããããã£ãåç
§ããã¨ãã¾ãç´æ¥æå®ããããªãã¸ã§ã¯ãï¼éï¼ããhogeããããã£ã®æç¡ãæ¤æ»ããããéã¯hogeãæããªãã®ã§ããã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãï¼èµ¤ï¼ã次ã«æ¤æ»ãããã赤ãhogeããããã£ãæããªãã®ã§ã赤ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãï¼é»ï¼ã次ã«æ¤æ»ããããé»ã¯hogeããããã£ãæã¤ã®ã§ããã®å¤ãåç
§ãããã
ãã¦ããã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ããã¨ããã¾ãããããã¯ãªãã®ãã¨ã§ããããã
æ¤æ»ãããããªãã¸ã§ã¯ãã®ãããã¿ã¤ããã¨ã¯ãªã«ã
ECMA-262ã§ã¯ä¸è¨ã®ããã«èª¬æããã¦ãã¾ãã
Every object created by a constructor has an implicit reference (called the objectâs prototype) to the value of its constructorâs âprototypeâ property.
Standard ECMA-262 ECMAScript Language Specification 5th edition (December 2009)
å³ã«ããã¨ãããªãã¾ãã
- ã³ã³ã¹ãã©ã¯ã¿ï¼ãã³ã¯ï¼ã®"prototype"ããããã£ã®å¤ã¯ãé»ãªãã¸ã§ã¯ã
- 赤ãªãã¸ã§ã¯ãã¯ãã³ã³ã¹ãã©ã¯ã¿(ãã³ã¯)ã«ãã£ã¦çæããããªãã¸ã§ã¯ã
- 赤ãªãã¸ã§ã¯ãã¯ãã³ã³ã¹ãã©ã¯ã¿ã®"prototype"ããããã£ã®å¤ï¼ï¼é»ãªãã¸ã§ã¯ãï¼ã¸ã®æé»çãªåç §ãæã¤
ããããããã«ã³ã³ã¹ãã©ã¯ã¿ã¨ã¯ï¼ã¨ããã®ã説æãããã¨è©¦ã¿ãã®ã§ãããç¨èªã®æ´çãã§ããæ«æãã¾ããããã
ãã¾ãã¾ã¨ããããã°å¾æ¥ç¶ããã¢ãããããã¨æãã¾ã