ã¯ããã«
ãJavaScriptã¯ãªãã¸ã§ã¯ãæåè¨èªã§ãããããããã®ãªãã¸ã§ã¯ãã®æ§è³ªã¯ãä»ã«è¯ãç¥ããã¦ãããªãã¸ã§ã¯ãæåè¨èªã®JavaãC++ã¨å¤§ããç°ãªã£ã¦ãã¾ãã
ãããã§ãã®è¨äºã§ã¯ããªããã®ãããªéããããã®ããJavaScriptã«ããããªãã¸ã§ã¯ãæåã®è¨èªææ³ãè¦ã¦ããã¨å ±ã«ããã®éãã®æ ¹å¹¹ã§ãããããã¿ã¤ãã«ã¤ãã¦è§£èª¬ãã¦ããããã¨æãã¾ãã
ããªãããã®è¨äºã¯JavaScriptã®è§£èª¬ã§ããããã®å 容ã¯ãæ¨æºä»æ§ã®ECMAScriptã§æ±ãããç¯å²ã«åºã¥ãã¦ãã¾ããå¾ã£ã¦ãåããECMAScriptãå ã«ãã¦ããè¨èªï¼JScriptãActionScriptï¼ã§ãéããå 容ã«ãªã£ã¦ãã¾ãã
対象èªè
ãããã°ã©ãã³ã°ã®åºæ¬çãªç¥èããªãã³ã«ãªãã¸ã§ã¯ããã¡ã½ããã¨è¨ã£ãåºç¤çãªæ¦å¿µã«ã¤ãã¦ã¯ãããã§ã¯è§£èª¬ãã¾ãããæä½éããªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ã«ã¤ãã¦ç解ããã¦ãã人ã対象ã¨ãã¦ãã¾ãã
ããã®è¨äºã¯ã主ã«ä»¥ä¸ã®ãããªäººã対象ã¨ãã¦ãã¾ãã
- ãµã¼ããµã¤ãJavaãè¡ã£ã¦ãã¦ãJSPãªã©ã§JavaScriptã®ç¥èãå¿ è¦ã«ãªã£ã人
- JavaScriptãããæ·±ã使ãããªããã人
- ãªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ãå¥ã®ã¢ããã¼ãããæããªããã¦ã¿ãã人
- JavaScriptã§ã¯ã©ã¹ãä½ãæ¹æ³ã¯ç¥ã£ã¦ããããä½æ ãã®ããã«æ¸ãã¨ã¯ã©ã¹ãä½ããã®ãããããªã人
å¿ è¦ãªç°å¢
ãECMAScript 3rd editionã®å®è£ ç³»ãä¾ãã°ãä¸è¨ã®ãããªç°å¢ã
- Microsoft Internet Explorer 5.5以ä¸
- Firefox 1.0以ä¸
ç®æ¬¡
- ã¯ã©ã¹ãã¼ã¹ã¨ãããã¿ã¤ããã¼ã¹
- ã³ã³ã¹ãã©ã¯ã¿ã¨ããæ©æ§
- æé»ã®åç §
- prototypeãªãã¸ã§ã¯ã
- ãããã¿ã¤ããã§ã¼ã³
- hasOwnProperty
ã¯ã©ã¹ãã¼ã¹ã¨ãããã¿ã¤ããã¼ã¹
ãã¾ãå®è£ ã®è©±ã«å ¥ãåã«ããªãã¸ã§ã¯ãæåã«ã¤ãã¦ç¢ºèªãããã¨æãã¾ãããªãã¸ã§ã¯ãæåã¨ã¯æããã¦ä½ãªã®ã§ããããï¼
ã端çã«è¡¨ãã¨ãããäºè±¡ããªãã¸ã§ã¯ãã¨ããåä½ã§å解ã»æ´çãã¦ãèªèã»åç¾ãããã¨ãã§ããã¤ã¾ãããã°ã©ãã³ã°ãªãã°ããæçµçã«ä½ãããã·ã¹ãã ããäºè±¡ã¨ãªãããã®ã·ã¹ãã ããªãã¸ã§ã¯ãã¨ããåä½ã«å解ãã¦ãã³ã³ãã¥ã¼ã¿ä¸ã§åç¾ãããã¨ããªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ã«ãªã訳ã§ãã
ãããã¦ãJavaScriptãJavaãC++ãªã©ã®ãªãã¸ã§ã¯ãæåè¨èªã¨ããã®ã¯ãäºè±¡ãå解ãããªãã¸ã§ã¯ã群ãããã°ã©ã ã¨ãã¦åç¾ããããããã«è¨è¨ãããè¨èªã¨ããäºã«ãªãã¾ãã
ãJavaãC++ã¨ãã£ãè¯ãç¥ããããªãã¸ã§ã¯ãæåè¨èªã¯ããã®ããã°ã©ã ã¨ãã¦åç¾ããéã«ãªãã¸ã§ã¯ããå®ç¾©ããæ¹æ³ã¨ãã¦ãã¯ã©ã¹ã¨ããæ¦å¿µãç¨ãã¾ããã¨ããã®ã¯ãå ¨ã¦ã®ãªãã¸ã§ã¯ãã«ã¯ã¯ã©ã¹ã¨ããéå½¢ãå¿ ãåå¨ãããã®éåãå®ä½åãããã¨ã§ãªãã¸ã§ã¯ãã¯çæããããã¨ããèãæ¹ã§ãããããã£ã¦ãJavaãC++ã®ãªãã¸ã§ã¯ãã¯å¿ ãã¯ã©ã¹ãåå¨ããã¡ã³ããã¯ã©ã¹ã®å®ç¾©ããé¸è±ããäºãã§ãã¾ãããã¾ãããªãã¸ã§ã¯ãã¯ã¯ã©ã¹ããå®ä½åãããã®ã§ã¤ã³ã¹ã¿ã³ã¹ã¨å¼ã°ãã¾ãã
ããã®ãããªã¯ã©ã¹-ã¤ã³ã¹ã¿ã³ã¹ã¨ããæ¦å¿µã使ç¨ãããªãã¸ã§ã¯ãæåè¨èªã®ãã¨ããã¯ã©ã¹ãã¼ã¹ãªãã¸ã§ã¯ãæåè¨èªï¼Class Based Object Oriented Languageï¼ã¨è¨ãã¾ãã
ãããã¨ã¯ç°ãªããJavaScriptã§ã¯ã¯ã©ã¹-ã¤ã³ã¹ã¿ã³ã¹ã¨ããèãæ¹ããã¾ããï¼*1ï¼ããªãã¸ã§ã¯ãã¯å¥ãªãªãã¸ã§ã¯ããå ï¼ãããã¿ã¤ãï¼ã«ãã¦ç¬èªã®ç¹å¾´ãä»å ãããã¨ã§åå¨ãããã¨ããèãæ¹ããã¾ãããã®ãããªãªãã¸ã§ã¯ãæåè¨èªã®ãã¨ãããããã¿ã¤ããã¼ã¹ãªãã¸ã§ã¯ãæåè¨èªï¼Prototype Based Object Oriented Languageï¼ã¨è¨ãã¾ãã
ããã®ããã«ãªãã¸ã§ã¯ãã«å¯¾ããèãæ¹ãã¾ãã§éãã®ã§ãJavaScriptã¨Javaã§ã¯ãªãã¸ã§ã¯ãã®æ§è³ªãç°ãªã£ã¦ããã®ã§ããJavaScriptã§ã¯ããªãã¸ã§ã¯ãèªèº«ãç¬èªã®ç¹å¾´ãä»å ããã®ã§ã第1åã§è¦ãããã«ããªãã¸ã§ã¯ãã«ã¡ã³ãã追å ãããåé¤ããããããã¨ãã§ãããã¨ãã訳ã§ãã
ã³ã³ã¹ãã©ã¯ã¿ã¨ããæ©æ§
ãã§ã¯ãJavaScriptã§ãªãã¸ã§ã¯ããçæããæ¹æ³ãè¦ã¦ããã¾ããããJavaScriptã§ãªãã¸ã§ã¯ããçæããã«ã¯ãã³ã³ã¹ãã©ã¯ã¿ã¨new
ã¨ããæ¼ç®åã使ç¨ãã¾ãã
ããã®ã³ã³ã¹ãã©ã¯ã¿ã¨ã¯ä¸ä½ä½ãªã®ã§ãããããå®ã¯ã³ã³ã¹ãã©ã¯ã¿ã¨ã¯é¢æ°ãªãã¸ã§ã¯ãã®äºã§ããå ¨ã¦ã®é¢æ°ã¯ãªãã¸ã§ã¯ããçæããã³ã³ã¹ãã©ã¯ã¿ã«ãªãå¯è½æ§ãããã¾ããã¾ãã¯ä¸çªã·ã³ãã«ãªä¾ãè¦ã¦ã¿ã¾ãããï¼List3.1ï¼ã
function SimpleConstructor() {} var obj = new SimpleConstructor();
ãæ®éã«function
æã§å®ç¾©ããé¢æ°ã«new
ãã¤ãã¦å¼ã³åºãã¦ããã ãã§ãããããããã¨ã§ãæ°ãããªãã¸ã§ã¯ããçæãããæ»ãå¤ã¨ãã¦è¿ããã¾ããreturn
æãè¨è¿°ããªãã¦ãçæããããªãã¸ã§ã¯ããè¿ãããäºã«æ³¨æãã¦ãã ããã
ããã¦ãããã§ã¯ããå°ãã³ã³ã¹ãã©ã¯ã¿ã®æ©æ§ã詳ããè¦ã¦ããã¾ããããé常ãã³ã³ã¹ãã©ã¯ã¿ã¨ãã¦å¼ã°ããé¢æ°ã®ä¸ã§ã¯ãçæãããã¨ãããªãã¸ã§ã¯ãã®åæåãè¡ãã¾ããå ±éã®ããããã£ãªã©ãã³ã³ã¹ãã©ã¯ã¿å ã§å®ç¾©ããã®ã§ãï¼List3.2ï¼ã
function PropSetConstructor() { this.prop1 = 10; this.prop2 = 20; } var obj1 = new PropSetConstructor(); alert(obj1.prop1); // 10 ã¨è¡¨ç¤ºãããã var obj2 = new PropSetConstructor(); alert(obj2.prop1); // 10 ã¨è¡¨ç¤ºãããã
ãã³ã³ã¹ãã©ã¯ã¿ã¨ãã¦é¢æ°ãªãã¸ã§ã¯ããå®è¡ããå ´åãthis
ã«ã¯ä»æ°ãã«çæããããã¨ãã¦ãããªãã¸ã§ã¯ããå
¥ãã¾ããå¾ã£ã¦ãthis
ã«ããããã£ãè¨å®ãã¦ããã°ãnew
ãã¦ä½æããããªãã¸ã§ã¯ãã®åæå®ç¾©ãè¡ãäºãã§ãã¾ããããããäºã§ãåãã³ã³ã¹ãã©ã¯ã¿ãç¨ãã¦è¤æ°ã®ãªãã¸ã§ã¯ããçæããã¨ãåãããããã£ãæã¤ãªãã¸ã§ã¯ããç°¡åã«ä½æããäºãã§ãã¾ãï¼*2ï¼ã
delete
æ¼ç®åã使ç¨ããã°ããããã£ãåé¤ã§ããã®ã§ãåãã³ã³ã¹ãã©ã¯ã¿ããä½æããã¦ã常ã«å¿
ãåãããããã£ãæã¤ã¨ã¯éããªãäºã«æ³¨æãã¦ãã ãããæé»ã®åç §
ããã¦ãJavaScriptã«ããããªãã¸ã§ã¯ãã®çæã«ã¤ãã¦è¦ãã¨ããã§ãä»åã®æ¬é¡ã§ãããããã¿ã¤ãã«ã¤ãã¦è¦ã¦ããã¾ãããã
ããããã¿ã¤ããã¼ã¹ã®ãªãã¸ã§ã¯ãæåè¨èªã§ã¯ããªãã¸ã§ã¯ãã¯å¥ã®ãªãã¸ã§ã¯ãããããã¿ã¤ãã¨ãã¦ã§ãã¦ããã¨èãã¾ããJavaScriptã§ã¯ãããæé»ã®åç §ã¨ããå½¢ã§å®ç¾ãã¦ãã¾ãããªãã¸ã§ã¯ãAããããã¿ã¤ãã¨ãã¦ãããªãã¸ã§ã¯ãBã¯ããªãã¸ã§ã¯ãAã«å¯¾ãæé»ã®åç §ãæã£ã¦ããã¨ããç¶æ ã«ãªãã¾ãã
ãJavaã§è¨ããªãã°ãéstatic
ãªinner classã®ã¤ã³ã¹ã¿ã³ã¹ãenclosing classã®ã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ããæé»ã®åç
§ãæã£ã¦ããç¶æ
ãèãã¦ãããã°è¯ãã§ããããã
ãã¤ã¾ãList3.3ã®ãããªç¶æ ã«ãªãã¾ãã
var objectA = ... // objectB 㯠objectA ã«å¯¾ãæé»ã®åç §ãæã£ã¦ãã // (objectAã¯objectBã®ãããã¿ã¤ãã§ãã)ã var objectB = ... objectA.hoge = 10; // objectA ã® hoge ããããã£ãããã§è¨å®ããã alert(objectB.hoge); // 10 ã¨è©ä¾¡ãããã
ãããªãã¡ããããªãã¸ã§ã¯ããããããã£ãè©ä¾¡ãããæãèªåèªèº«ããã®ããããã£ãæã£ã¦ããªããã°ãæé»ã®åç §ããã©ã£ã¦ããã®å ã®ãªãã¸ã§ã¯ãã®ããããã£ãè©ä¾¡ãã¾ãã
ããããJavaScriptã«ããããããã¿ã¤ãã®ä»çµã¿ã§ãã
prototypeãªãã¸ã§ã¯ã
ãããã§ã¯ãå ·ä½çã«ãããã¿ã¤ããæå®ããæ©æ§ãè¦ã¦ã¿ã¾ããããããã§åã³ã³ã³ã¹ãã©ã¯ã¿ãåºã¦ãã¾ãã
ãå®ã¯ãå
¨ã¦ã®é¢æ°ãªãã¸ã§ã¯ãã¯prototype
ã¨ããããããã£ãä¿æãã¦ãã¾ããé¢æ°ãªãã¸ã§ã¯ããå®ç¾©ããç´å¾ã§ã¯ããã®prototype
ã«ã¯ä½ãããããã£ãæããªãã·ã³ãã«ãªãªãã¸ã§ã¯ããåç
§ãã¦ãã¾ãããå¥ã®ãªãã¸ã§ã¯ãã代å
¥ããããæ°ããªããããã£ãè¨å®ãããããäºãå¯è½ã§ãã
ãããã¦ããã®é¢æ°ãªãã¸ã§ã¯ããã³ã³ã¹ãã©ã¯ã¿ã¨ãã¦çæããããªãã¸ã§ã¯ãã¯ãã³ã³ã¹ãã©ã¯ã¿ã®prototype
ããããã£ã«ä»£å
¥ããã¦ãããªãã¸ã§ã¯ãã«å¯¾ããæé»ã®åç
§ãæã¤ã®ã§ããã¤ã¾ãprototype
ãæããªãã¸ã§ã¯ãããããã¿ã¤ãã¨ãªãã¨ããããã§ãã
ãå ·ä½çã«ã³ã¼ããè¦ã¦ã¿ã¾ãããï¼List3.4ï¼ã
function PrototypeTestConstructor() {} // prototype ãªãã¸ã§ã¯ãã« prop1 ã¨ããããããã£ãè¨å®ã PrototypeTestConstructor.prototype.prop1 = 30; var obj = new PrototypeTestConstructor(); alert(obj.prop1); // 30 ã¨è¡¨ç¤ºãããã
ãã¤ã¾ãPrototypeTestConstructor
ã«ãã£ã¦çæããããªãã¸ã§ã¯ãã¯ãPrototypeTestConstructor.prototype
ãæããªãã¸ã§ã¯ããæé»çã«åç
§ããããã«ãªãã¾ãã
ããã¦ãããã§ãµã¨çåã«æããã¨ãããã¾ããããã³ã³ã¹ãã©ã¯ã¿ãnew
ãã¦ã§ãããªãã¸ã§ã¯ããå
¨ã¦ãã®prototype
ã¸ã®æé»ã®åç
§ãæã¤ã®ã§ããã°ããã®ããããã£ã¯ã¯ã©ã¹å¤æ°ã®æ§ã«new
ããããªãã¸ã§ã¯ãã§å
±æããã¦ãã¾ãã®ã§ã¯ãªãã§ããããï¼
ã確ãã«ãå ±æããã¦ãã¾ãã¾ããããããããå®éã«åé¡ã«ãªããã¨ã¯ããã¾ããããã®çç±ã以ä¸ã«ç¤ºãã¾ããã¾ãã¯æ¬¡ã®ä¾ãè¦ã¦ãã ããï¼List3.5ï¼ã
function Constructor() {} Constructor.prototype.prop1 = 30; var objA = new Constructor(); var objB = new Constructor(); // [α] alert(objA.prop1) // 30 ã¨è¡¨ç¤ºãããã alert(objB.prop1) // 30 ã¨è¡¨ç¤ºãããã objA.prop1 = 100; // [β] alert(objA.prop1) // 100 ã¨è¡¨ç¤ºãããã alert(objB.prop1) // ???
ãList3.5ã®æå¾ã®alert
ã¯ä½ã¨è¡¨ç¤ºãããã§ããããï¼ å®ã¯ããã¯30ã¨è¡¨ç¤ºããã¾ãã
ãã¨ããã®ããèªã¿åãè©ä¾¡ã®æã¯ãæé»ã®åç
§ããã©ãã®ã§ããã代å
¥ãdelete
æ¼ç®åã¯ããã©ããªãã®ã§ããå¾ã£ã¦ãobjA.prop1 = 100;
ãè¡ã£ãæç¹ã§ãobjA
ãã®ãã®ã«prop1
ã¨ããããããã£ãæ°ãã«ä½ãããããã«100ã代å
¥ãããã®ã§ãããã£ã¦Constructor.prototype.prop1
ã®å¤ã¯å¤ãããªãã¾ã¾ã¨ãªãã¾ãã
ãã¡ãã£ã¨åããã¥ããã®ã§å³ã«ãã¦ã¿ã¾ããããFigure3.1ã¯List3.5 αã®ç¶æ ã表ãã¦ãã¾ãã
ããã®æobjA.prop1
ãå¼ã³åºãã¨ãobjA
èªèº«ã«ã¯prop1
ãç¡ããããæé»ã®åç
§ããã©ããprototype
ã«ã¦prop1
ãè¦ã¤ã30ã¨è©ä¾¡ããã¾ãã
ãããããã®å¾ãä»£å ¥ã«ãã£ã¦Figure3.2ã®ç¶æ ã«ãªãã¾ãã
ããã®å ´åãobjA.prop1
ãå¼ã³åºãã¨ãobjA
èªèº«ã«ã¯prop1
ãããããããã®å¤ã§ãã100ã¨è©ä¾¡ãããobjB.prop1
ãå¼ã³åºãã¨ãæé»ã®åç
§ããã©ã30ã¨è©ä¾¡ãããã®ã§ãã
ããã®ä»çµã¿ããããã¿ã¤ããã¼ã¹è¨èªã§ããJavaScriptã®ãªãã¸ã§ã¯ãã®æ ¹å¹¹ã¨ãªãã¾ãã
ãããã¿ã¤ããã§ã¼ã³
ããã¦ãåç¯ã§ã¯è©±ãåç´ã«ããããã«1é層ã§ã®ä¾ã§ããããã³ã³ã¹ãã©ã¯ã¿ã®prototype
ã«ã¯ããªãã¸ã§ã¯ãã代å
¥ã§ãã¾ãã®ã§ãprototype
ã«ä»£å
¥ãããªãã¸ã§ã¯ããå¥ã®ãªãã¸ã§ã¯ãããããã¿ã¤ãã«ãã¦ããäºãããã¾ããããããå
¨ã¦ã®ãªãã¸ã§ã¯ãã¯Object.prototype
ãæé»çã«åç
§ãã¦ãã¾ãã
ããããããããã¿ã¤ãã®é£éã®ãã¨ããããã¿ã¤ããã§ã¼ã³ã¨å¼ã³ã¾ãã
var objA = new Object(); objA.prop1 = 10; function Func1() {} Func1.prototype = objA; var objB = new Func1(); function Func2() {} Func2.prototype = objB; var objC = new Func2(); alert(objC.prop1); // 10 ã¨è©ä¾¡ãããã
hasOwnPropertyã¡ã½ãã
ã以ä¸ã¾ã§ãJavaScriptã®ãããã¿ã¤ãã®ã¡ã«ããºã ã§ããJavaãC++ã¨ãã£ãã¯ã©ã¹ãã¼ã¹ã®è¨èªã«ã¯æ ¹æ¬çã«ç¡ãèãæ¹ãªã®ã§è¥å¹²æ¸æãããç¥ãã¾ããããå ¨ã¦ã®ãªãã¸ã§ã¯ãããå®ä½ãæã£ãå¥ã®ãªãã¸ã§ã¯ãã«é£éãã¦ããã¨ãããã¨ãåããã°æ´çã§ããã¨æãã¾ãã
ããã¦ãã§ã¯ãããªãã¸ã§ã¯ãã®ããããã£ãè©ä¾¡ããéãä»®ã«ä½ããã®å¤ãè¿ã£ã¦ããã¨ãã¦ãããã®ãªãã¸ã§ã¯ãèªèº«ãããããã£ãæã£ã¦ããã®ãããã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ããæã£ã¦ããã®ããå¤æãããã¨ãã§ãã¾ããã
ãããã§ãJavaScriptã§ã¯å
¨ã¦ã®ãªãã¸ã§ã¯ãã«ï¼ããªãã¡Object.prototype
ã«ï¼ãhasOwnProperty
ã¨ããã¡ã½ãããå®ç¾©ããã¦ãã¾ããããã¯å¼æ°ã§ä¸ããæååã«ä¸è´ããããããã£ãããã®ãªãã¸ã§ã¯ãèªèº«ãæã£ã¦ãããã©ãããå¤æãã¦ãããã¡ã½ããã§ãã
ãå ·ä½ä¾ãè¦ã¦ã¿ã¾ãããï¼List3.7ï¼ã
function Constructor() {} Constructor.prototype.prop1 = 30; var objA = new Constructor(); // objA èªä½ã¯æã£ã¦ããªãã®ã§ falseã alert(objA.hasOwnProperty("prop1")); objA.prop1 = 100; // objA èªä½ãæã£ã¦ããã®ã§ trueã alert(objA.hasOwnProperty("prop1"));
ããã®hasOwnProperty
ã¡ã½ããã使ããã¨ã§ããã®ãªãã¸ã§ã¯ãèªèº«ã«ããããã£ããããã©ãããå¤æãããã¨ãã§ãã¾ãã
ã¾ã¨ã
ãä»åã¯ã以ä¸ã®ãããªãããã¿ã¤ãã®ã¡ã«ããºã ã«ã¤ãã¦å¦ã³ã¾ããã
- JavaScriptã¯ãæ¢åã®ãªãã¸ã§ã¯ããåºã«æ°ããªãªãã¸ã§ã¯ããçæããããããã¿ã¤ããã¼ã¹ã®ãªãã¸ã§ã¯ãæåè¨èªã§ããã
- é¢æ°ãªãã¸ã§ã¯ãã
new
æ¼ç®åã§ä½¿ç¨ãããã¨ã«ãã£ã¦ãæ°ããªãªãã¸ã§ã¯ããçæããã³ã³ã¹ãã©ã¯ã¿ã«ãªãã - é¢æ°ãªãã¸ã§ã¯ãã®
prototype
ããããã£ã«ä»£å ¥ããã¦ãããªãã¸ã§ã¯ãã¯ããã®é¢æ°ãªãã¸ã§ã¯ããã³ã³ã¹ãã©ã¯ã¿ã¨ãã¦çæããããªãã¸ã§ã¯ãããæé»ã®åç §ãããã¦ããã - ãã®æé»ã®åç §ã®é£éããããã¿ã¤ããã§ã¼ã³ã¨å¼ã¶ã
hasOwnProperty
ã¡ã½ããã«ãã£ã¦ããªãã¸ã§ã¯ãèªèº«ã«ããããã£ããããã©ããå¤æãããã¨ãã§ããã
åèè³æ
ãæ¬ç¨¿ã¯ãStarry Night ãJavaScriptè¬åº§ã ã«ã¦å ¬éãã¦ããè¨äºã®ç¶ãã«ãããã¾ããé£è¼ãåéããã«ããããåç·¨éãè¡ãCodezineã«å¯ç¨¿ãããã¾ããã
- Ecma International ãStandard ECMA-262ã
- ãUnder Translation of ECMA-262 3rd Editionã