åã®éšå ã
- ç絡
- èªåã¬ããŒãžã³ã¬ã¯ã·ã§ã³
- ã¯ããŒãžã£ãŒãäœæãã
- ã¯ããŒãžã£ãŒã§äœãã§ããŸããïŒ
- äŸ1ïŒé¢æ°åç
§ã䜿çšããsetTimeout
- äŸ2ïŒé¢æ°ããªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ã¡ãœããã«é¢é£ä»ãã
- äŸ3ïŒçžäºæ¥ç¶ãããæ©èœã®ã«ãã»ã«å
- ä»ã®äŸ
- ã©ã³ãã éå
- Internet Explorerã®ã¡ã¢ãªãªãŒã¯ã®åé¡
ç絡
èªåã¬ããŒãžã³ã¬ã¯ã·ã§ã³
ECMAScriptã¯èªåã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã䜿çšããŸãã 仿§ã§ã¯è©³çްãå®çŸ©ãããŠããªããããéçºè
ã¯ããã«å¯ŸåŠããå¿
èŠããããäžéšã®å®è£
ã§ã¯ã¬ããŒãžã³ã¬ã¯ã·ã§ã³æäœãã»ãšãã©éèŠèŠããŠããªãããšãç¥ãããŠããŸãã ããããäžè¬çãªèãã¯ããªããžã§ã¯ããåç
§ããããšãäžå¯èœã«ãªã£ãå ŽåïŒå®è¡å¯èœã³ãŒãã§äœ¿çšå¯èœãªåç
§ãæ®ã£ãŠããªãããïŒãã¬ããŒãžã³ã¬ã¯ã¿ãŒããã³äœããã®æç¹ã§åé€ããããªãœãŒã¹ã§äœ¿çšã§ããããã«ãªããšããããšã§ãã䜿çšãããè§£æŸãããåå©çšã®ããã«ã·ã¹ãã ã«æ»ãããŸãã
ååãšããŠãããã¯å®è¡ã³ã³ããã¹ããé¢ããçŽåŸã«çºçããŸãã ã¹ã³ãŒãæ§é ãã¢ã¯ãã£ããŒã·ã§ã³/倿°ãªããžã§ã¯ããããã³é¢æ°ãªããžã§ã¯ããå«ãå®è¡ã³ã³ããã¹ãã§äœæããããªããžã§ã¯ãã¯ã¢ã¯ã»ã¹ã§ããªããªããã¬ããŒãžã³ã¬ã¯ã¿ãŒãå©çšã§ããããã«ãªããŸãã
ã¯ããŒãžã£ãŒãäœæãã
ãã®é¢æ°åŒã³åºããã颿°åŒã³åºãã®å®è¡ã®ã³ã³ããã¹ãã§äœæããã颿°ãªããžã§ã¯ããè¿ããããã¹ãããã颿°ãžã®ãªã³ã¯ãå¥ã®ãªããžã§ã¯ãã®ããããã£ã«å²ãåœãŠããããšãã¯ããŒãžã£ãŒã圢æãããŸãã ãŸãã¯ããã®ãããªé¢æ°ãªããžã§ã¯ããããšãã°ã°ããŒãã«å€æ°ãã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªãªããžã§ã¯ãã®ããããã£ããŸãã¯å€éšé¢æ°åŒã³åºããžã®åŒæ°ãšããŠåç
§ã«ãã£ãŠæž¡ããããªããžã§ã¯ããžã®åç
§ãçŽæ¥å²ãåœãŠãããšã«ãã£ãŠã
function exampleClosureForm(arg1, arg2){ var localVar = 8; function exampleReturned(innerArg){ return ((arg1 + arg2)/(innerArg + localVar)); } return exampleReturned; } var globalVar = exampleClosureForm(2, 4);
ããã§ã
exampleClosureFormã®åŒã³åºããå®è¡ããã³ã³ããã¹ãã§äœæããã颿°ãªããžã§ã¯ãã¯ãã°ããŒãã«å€æ°ã«ãã£ãŠåç
§ããããŸã å©çšå¯èœã§ãããããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ãã£ãŠåŠçã§ããŸããããã®ãªããžã§ã¯ãã¯
globalVarïŒnïŒãåŒã³åºããããšãã«ãå®è¡ã§ããŸãã
ããããã°ããŒãã«å€æ°
globalVarã¯é¢æ°ãªããžã§ã¯ããåç
§ããããããã®ãªããžã§ã¯ãã¯
[[scope]]ããããã£ã§äœæãããäœæãããå®è¡ã³ã³ããã¹ãã«å±ããã¢ã¯ãã£ããŒã·ã§ã³/倿°ãªããžã§ã¯ããå«ãã¹ã³ãŒããã§ãŒã³ãåç
§ãããããã°ããŒãã«ãªããžã§ã¯ããå«ãïŒã ã¢ã¯ãã£ããŒã·ã§ã³/倿°ãªããžã§ã¯ãã¯ã¬ããŒãžã³ã¬ã¯ã¿ãŒã§åŠçã§ããã
globalVarã§åç
§ããã颿°ãªããžã§ã¯ã
ãå®è¡ããããšã
[[scope]]ããããã£ã§åç
§ãããã¹ã³ãŒããã§ãŒã³å
šäœãæ¯åäœæãããå®è¡ã³ã³ããã¹ãã®
ã¹ã³ãŒãã«è¿œå ãããŸã颿°ãªããžã§ã¯ããåŒã³åºããŸãã
ã¯ããŒãžã£ãŒãäœæãããŸãã ãã¹ãããã颿°ã®ãªããžã§ã¯ãã«ã¯èªç±å€æ°ãããããã®é¢æ°
ã®å¯èŠæ§ã®ãã§ãŒã³ã«ããã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã/倿°ã¯ãããããæ¥ç¶ããåªäœã§ãã
ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã/倿°ããã©ãããããã®ã¯ã ãããžã®åç
§ã¯ã
globalVar倿°ã«ãã£ãŠåç
§ããã颿°ãªããžã§ã¯ãã®å
éš
[[scope]]ããããã£ã«å²ãåœãŠãã
ãã¹ã³ãŒããã§ãŒã³ã«å«ãŸããŸãã ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã/倿°ã¯ããã®ç¶æ
ãšãšãã«ä¿åãããŸãã ããããã£ã®å€ã䜿çšããŸãã å
éšé¢æ°ã®åŒã³åºãã®å®è¡å®è¡ã³ã³ããã¹ãã®
ã¹ã³ãŒãã解決ããããã»ã¹ã§ã¯ããã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã/倿°ã®ååä»ãããããã£ã«å¯Ÿå¿ããèå¥åããåã«ãã®ãªããžã§ã¯ãã®ããããã£ãšããŠèšç®ãããŸãã ãããã®ããããã£ã®å€ã¯ãäœæãããå®è¡ã³ã³ããã¹ããçµäºããåŸã§ãèªã¿åãããã³èšå®ã§ããŸãã
äžèšã®äŸã§ã¯ããã®ã¢ã¯ãã£ããŒã·ã§ã³/倿°ãªããžã§ã¯ãã¯ãå€éšé¢æ°ãå®äºããïŒå®è¡ã³ã³ããã¹ããçµäºããïŒæç¹ã§ã®ä»®ãã©ã¡ãŒã¿ãŒã®å€ãå
éšé¢æ°ãšããŒã«ã«å€æ°ã®å®çŸ©ã衚ãç¶æ
ãæã¡ãŸãã
arg1ããããã£ã®å€ã¯
2 ã
arg2ã®å€ã¯
4 ã
localVarã®å€ã¯
8ã exampleReturnedããããã£ã¯ãå€éšé¢æ°ããè¿ããããã¹ãããã颿°ã®ãªããžã§ã¯ããžã®åç
§ã§ãã ïŒä»¥äžã§ã¯ã䟿å®äžããã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã\倿°ãActOuter1ãšããŠç€ºããŸããïŒ
ããäžåºŠexampleClosureFormãåŒã³åºããš
var secondGlobalVar = exampleClosureForm(12, 3);
-æ°ããã¢ã¯ãã£ãåãªããžã§ã¯ãã䜿çšããŠãæ°ããå®è¡ã³ã³ããã¹ããäœæãããŸãã ãããŠãåŒæ°å€
arg1-12ããã³
arg2-3ãæã€2çªç®ã®å®è¡ã³ã³ããã¹ãããã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ããå«ã
ã¹ã³ãŒããã§ãŒã³ãåç
§ãã
ãç¬èªã®åå¥ã®ããããã£
[[scope]]ã§æ°ãã颿°ãªããžã§ã¯ããè¿ãããŸãã ïŒä»¥äžã§ã¯ã䟿å®äžããã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã\倿°ãActOuter2ãšããŠç€ºããŸããïŒ
exampleClosureFormãžã®2åç®ã®åŒã³åºãã«ãã£ãŠã2çªç®ã®ç°ãªãã¯ããŒãžã£ãŒãäœæãããŸããã
ãããã
globalVarãš
secondGlobalVarã§åç
§ããã
exampleClosureFormãå®è¡ããŠäœæããããããã®é¢æ°ãªããžã§ã¯ãã¯äž¡æ¹ãšããåŒ
ïŒïŒarg1 + arg2ïŒ/ïŒinnerArg + localVarïŒïŒãè¿ããŸãã 4ã€ã®èå¥åã«å¯ŸããŠè€æ°ã®ã¹ããŒãã¡ã³ããå®è¡ããŸãã ãããã®èå¥åã®èšç®æ¹æ³ã«ãã£ãŠãã¯ããŒãžã£ã®ç®çãšæå³ã決ãŸããŸãã
globalVar ïŒ
globalVarïŒ2ïŒã«ãã£ãŠåç
§ããã颿°ãªããžã§ã¯ãã®å®è¡ãæ€èšããŠãã ããã æ°ããå®è¡ã³ã³ããã¹ããäœæãããã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ãïŒActInner1ãšåŒã³ãŸãããïŒããå®è¡ããã颿°ãªããžã§ã¯ãã®
[[scope]]ããããã£ãåç
§ãã
ã¹ã³ãŒããã§ãŒã³ã®å
é ã«è¿œå ãããŸãã ActInner1ã¯ãä»®ãã©ã¡ãŒã¿ãŒã«åŒæ°
2ã®å€ãå²ãåœãŠãããåŸã«innerArgããããã£ãååŸããŸãã æ°ããå®è¡ã³ã³ããã¹ãã®ã¹ã³ãŒããã§ãŒã³ã¯ãActInner1-> ActOuter1->ã°ããŒãã«ãªããžã§ã¯ãã«ãªããŸãã
èå¥ååã¯ããã®æ¹æ³ã§
ã¹ã³ãŒããã§ãŒã³ãéããŠè§£æ±ºãããŸãã åŒ
ïŒïŒarg1 + arg2ïŒ/ïŒinnerArg + localVarïŒïŒã®å€ãè¿ãããã«ããããã®èå¥åã®å€ã¯
ãã¹ã³ãŒããã§ãŒã³ããåãªããžã§ã¯ãã®èå¥åã«å¯Ÿå¿ããååãæã€ããããã£ãé çªã«æ€çŽ¢ããããšã§æ±ºå®ãããŸãã
ãã§ãŒã³ã®æåã®ãªããžã§ã¯ãã¯ActInner1ã§ãå€ã
2ã® innerArgããããã£ããããŸãã æ®ãã®3ã€ã®èå¥åã¯ãActOuter1ã®ååä»ãããããã£ã«å¯Ÿå¿ããŠããŸãã å€ã
2ã® arg1 ã
arg2ã¯
4 ã
localVarã¯
8ã§ãã 颿°åŒã³åºãã¯
ïŒïŒ2 + 4ïŒ/ïŒ2 + 8ïŒïŒãè¿ããŸãã
ãããã
secondGlobalVarã§åç
§ãããå¥ã®åäžã®é¢æ°ãªããžã§ã¯ãã®å®è¡ãšæ¯èŒããŠãã ããïŒ
secondGlobalVarïŒ5ïŒ ã æ°ããå®è¡ã³ã³ããã¹ãActInner2ã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ãã«ååãä»ããŸãããã§ãŒã³ã¯ãActInner2-> ActOuter2->ã°ããŒãã«ãªããžã§ã¯ãã®ããã«ãªããŸãã ActInner2ã¯
innerArgã
5ãšããŠè¿ããActOuter2ã¯
arg1 ã
arg2ããã³
localVarããããã
12ã3ããã³
8ãšããŠè¿ããŸãã æ»ãå€ïŒ
ïŒïŒ12 + 3ïŒ/ïŒ5 + 8ïŒïŒ ã
secondGlobalVarãå床å®è¡ãããš
ãã¹ã³ãŒããã§ãŒã³ã®å
é ã«æ°ããã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ãã衚瀺ãããŸãããActOuter2ã¯
ãã§ãŒã³å
ã®æ¬¡ã®ãªããžã§ã¯ãã®ãŸãŸã§ããããã®ååä»ãããããã£ã®å€ã¯èå¥å
arg1 ã
arg2ããã³
localVarã®è§£æ±ºã«åã³äœ¿çšãããŸãã
ãã®ããã«ããŠãECMAScriptã®ãã¹ãããã颿°ã¯ãä»®ãã©ã¡ãŒã¿ãŒããã¹ãããã颿°ã®å®£èšãããã³äœæãããå®è¡ã³ã³ããã¹ãã®ããŒã«ã«å€æ°ãžã®ã¢ã¯ã»ã¹ãåãåããä¿æããŸãã ãããã£ãŠãã¯ããŒãžã£ãäœæãããšããã®ãããªé¢æ°ãªããžã§ã¯ãã¯ãããã®å€ãåç
§ãç¶ããååšããŠããéã«ããããèªã¿åã£ãŠå€æŽããããšãã§ããŸãã ãã¹ãããã颿°ãäœæãããå®è¡ã³ã³ããã¹ãã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã/倿°ã¯ããã¹ãããã颿°ãžã®ãã¹ãŠã®åç
§ãè§£æŸããã颿°ãªããžã§ã¯ããåç
§ããããŸã§ã颿°ãªããžã§ã¯ãã®
[[scope]]ããããã£ãåç
§ãã
ã¹ã³ãŒãã®
ãã§ãŒã³ã«æ®ããŸãã¬ããŒãžã³ã¬ã¯ã¿ãŒã§äœ¿çšã§ããªããªããŸãïŒä»åŸãã¹ã³ãŒããã§ãŒã³å
ã®ãã¹ãŠã®ãªããžã§ã¯ããšäžç·ã«äžèŠã«ãªããŸãïŒã
å
¥ãå颿°èªäœã«å
¥ãå颿°ãå«ããããšãã§ããŸãã ã¯ããŒãžã£ãŒã圢æããããã«é¢æ°ã«ãã£ãŠè¿ããããã¹ãããã颿°ã¯ããã¹ãããã颿°ãè¿ããã¯ããŒãžã£ãŒãäœæã§ããŸãã æ·»ä»ãã¡ã€ã«ããšã«
ãã¹ã³ãŒããã§ãŒã³ã¯ããã¹ãããã颿°ãªããžã§ã¯ããäœæãããå®è¡ã³ã³ããã¹ããšå
±ã«çºçãã远å ã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ããåãåããŸãã ECMAScript仿§ã§ã¯ã
ã¹ã³ãŒããã§ãŒã³ãæéã§ããããšãå¿
èŠã§ããããã®é·ãã«å¶éã¯ãããŸããã ãããããå®éã®ããã€ãã®å®è£
ã«ã¯ããã€ãã®å¶éããããŸããããããŸã§ã®ãšããç¹å®ã®æ°éã®å ±åã¯ãããŸããã§ããã ã©ããããæ©èœã®ãããªãæè³ã®å¯èœæ§ã¯ã誰ããå¿
èŠãšãããããå€ãã§ãã
ã¯ããŒãžã£ãŒã§äœãã§ããŸããïŒ
å¥åŠã«æãããããããŸãããããã®è³ªåã«å¯Ÿããçãã¯çµ¶å¯Ÿã«ãã¹ãŠã§ãã ç§ã¯ãã¯ããŒãžã£ãŒã«ãã£ãŠECMAScriptãäœã§ããšãã¥ã¬ãŒãã§ããããã«ãªããšããäºå®ã«ã€ããŠè©±ããŠããŸããå¶éã¯ããã®ãšãã¥ã¬ãŒã·ã§ã³ãèæ¡ããŠå®è£
ããèœåã«ã®ã¿ãããŸãã ããã¯å°ããããã«ããã®ã§ããã£ãšå®çšçãªãã®ããå§ããæ¹ãè¯ããããããŸããã
äŸ1ïŒé¢æ°åç
§ã䜿çšããsetTimeout
ã¯ããŒãžã£ãŒã¯ãå®è¡åã«å®è¡ãã颿°ã®ãã©ã¡ãŒã¿ãŒãæäŸããããã«ãã䜿çšãããŸãã ããšãã°ã颿°ã
setTimeout颿°ã®æåã®åŒæ°ãšããŠæž¡ãå¿
èŠãããå Žåãããã¯Webãã©ãŠã¶ãŒç°å¢ã§äžè¬çã§ãã
setTimeoutã¯ãããªç§åäœã§è¡šãããééïŒ2çªç®ã®åŒæ°ããïŒã®åŸãæåã®åŒæ°ããã¢ã¯ã»ã¹å¯èœãªé¢æ°ïŒãŸãã¯ã³ãŒãã®javascriptè¡ã§ããããã®å Žåã¯ããã§ã¯ãããŸããïŒã®å®è¡æéãèšå®ããŸãã
setTimeoutã䜿çšããã«ã¯ããã®é¢æ°ãåŒã³åºããŠã颿°ãªããžã§ã¯ããžã®åç
§ãæåã®åŒæ°ãšããŠãããªç§åäœã®ééã2çªç®ãšããŠæž¡ãå¿
èŠããããŸããã颿°ãªããžã§ã¯ããžã®åç
§ã«ã¯ããã®é¢æ°ã®ã¹ã±ãžã¥ãŒã«ãããå®è¡ã®ãã©ã¡ãŒã¿ãŒãå«ããããšã¯ã§ããŸããã
ãã ãããã¹ãããã颿°ã®ãªããžã§ã¯ããžã®åç
§ãè¿ãå¥ã®é¢æ°ãåŒã³åºãããšãã§ããŸãããã®
颿°ã¯ã
setTimeout颿°ãžã®åç
§ã«ãã£ãŠæž¡ãããŸãã ãã¹ãããã颿°ã§äœ¿çšããããã©ã¡ãŒã¿ãŒã¯ããããè¿ã颿°ãåŒã³åºããããšãã«éä¿¡ãããŸãã
setTimoutã¯åŒæ°ãæž¡ããã«ãã¹ãããã颿°ãå®è¡ããŸããããã®ãã¹ãããã颿°ã¯ããããè¿ããå€éšé¢æ°ãåŒã³åºãããšã§æäŸããããã©ã¡ãŒã¿ãŒã«åŒãç¶ãã¢ã¯ã»ã¹ã§ããŸãã
function callLater(paramA, paramB, paramC){ return (function(){ paramA[paramB] = paramC; }); } ... var functRef = callLater(elStyle, "display", "none"); hideMenu=setTimeout(functRef, 500);
äŸ2ïŒé¢æ°ããªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ã¡ãœããã«é¢é£ä»ãã
颿°ãªããžã§ã¯ããžã®åç
§ãå²ãåœãŠããã颿°ãå°æ¥ã®ããæéåŸã«å®è¡ãããå Žåãä»ã®å€ãã®ç¶æ³ããããŸãããã®å Žåããã®é¢æ°ã®å®è¡ã®ããã®ãã©ã¡ãŒã¿ãŒãæºåãããšäŸ¿å©ã§ããå®è¡æã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸããããå²ãåœãŠã®ç¬éãŸã§äžæã§ãã
1ã€ã®äŸã¯ãç¹å®ã®DOMèŠçŽ ãšã®çžäºäœçšãã«ãã»ã«åããããã«èšèšãããjavascriptãªããžã§ã¯ãã§ãã ãã®DOMèŠçŽ ã®å¯Ÿå¿ããã€ãã³ããããªã¬ãŒããããšãã«å®è¡ãã
doOnClick ã
doMouseOver ãããã³
doMouseOutã¡ãœãããå«ãŸããŠããŸãããããŸããŸãªDOMèŠçŽ ã«é¢é£ä»ããããã«äœæãããjavascriptãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ã¯ããã€ã§ããããåã
ã®ãªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ã¯ãããã®æ¹æ³ãç¥ããªãå ŽåããããŸãããããäœæãããã³ãŒãã«é©çšãããŸãã ãããã®ãªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ã¯ãã°ããŒãã«ã«åç
§ãããæ¹æ³ã決å®ã§ããŸããã ã©ã®ã°ããŒãã«å€æ°ïŒååšããå ŽåïŒã«ããããžã®åç
§ãå²ãåœãŠããããã¯ããããŸããã
ãããã£ãŠãåé¡ã¯ãã€ãã³ããåŠçãã颿°ã®å®è¡ã«ãããŸãã颿°ã¯ãjavascriptãªããžã§ã¯ãã®ç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ã«é¢é£ä»ãããããã®ãªããžã§ã¯ãã®ã©ã®ã¡ãœãããåŒã³åºãå¿
èŠãããããèªèããŠããŸãã
次ã®äŸã§ã¯ããªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ãèŠçŽ ã®ã€ãã³ããã³ãã©ãŒã«é¢é£ä»ããã¯ããŒãžã£ã«åºã¥ãåçŽãªæ±å颿°ã䜿çšããŸãã ã€ãã³ããã³ãã©ãŒãå®è¡ãããšãã€ãã³ããªããžã§ã¯ããšé¢é£ä»ããããèŠçŽ ãžã®åç
§ãæž¡ããããªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ã®ç¹å®ã®ã¡ãœãããåŒã³åºããããã®ã¡ãœããã«ãã£ãŠè¿ãããå€ãè¿ããããšããŸãã
function associateObjWithEvent(obj, methodName){ return (function(e){ e = e||window.event; return obj[methodName](e, this); }); } function DhtmlObject(elementId){ var el = getElementWithId(elementId); if(el){ el.onclick = associateObjWithEvent(this, "doOnClick"); el.onmouseover = associateObjWithEvent(this, "doMouseOver"); el.onmouseout = associateObjWithEvent(this, "doMouseOut"); ... } } DhtmlObject.prototype.doOnClick = function(event, element){ ...
ãããã£ãŠãã°ããŒãã«ãªåå空éã«åœ±é¿ãäžã
ãã ã
DhtmlObjectã®ä»ã®ã€ã³ã¹ã¿ã³ã¹
ãšè¡çªãããããããšãªãã
DhtmlObjectã®ã€ã³ã¹ã¿ã³ã¹ãDOMèŠçŽ ã«é¢é£ä»ããããšãã§ããä»ã®ã³ãŒãã«ããäœ¿çšæ¹æ³ãèæ
®ããå¿
èŠã¯ãããŸããã
äŸ3ïŒçžäºæ¥ç¶ãããæ©èœã®ã«ãã»ã«å
ã¯ããŒãžã£ãŒã䜿çšããŠãçžäºæ¥ç¶ããçžäºäŸåããã³ãŒããã°ã«ãŒãåãã远å ã®ã¹ã³ãŒããäœæããŠãå¶çºçãªçžäºäœçšã®ãªã¹ã¯ãæå°éã«æããããšãã§ããŸãã æååãäœæãã颿°ããããé£çµæäœã®ç¹°ãè¿ãïŒããã³å€ãã®äžéæååã®äœæïŒãé¿ããããã«ãé
åã䜿çšããŠæååã®äžéšãç¹å®ã®é åºã§
ä¿åãã
Array.prototype.joinã䜿çšããŠçµæãåºåããããšããå§ãããŸãïŒåŒæ°ãšããŠç©ºã®æååã䜿çšããŸãïŒã é
åã¯åºåã®ãããã¡ãŒãšããŠäœ¿çšãããŸããã颿°å
ã§ããŒã«ã«ã«å®çŸ©ãããŠããå Žåã颿°ãå®è¡ããããã³ã«åäœæãããŸããããã¯ã颿°ã®åŒã³åºãããšã«é
åã®å€æ°ã®å
容ã®ã¿ã倿Žãããå Žåã¯äžèŠã§ãã
1ã€ã®æ¹æ³ã¯ããã®é
åã®ã°ããŒãã«å€æ°ãäœæããŠãæ¯å䜿çšãããã³ã«åäœæããå¿
èŠããªãããã«ããããšã§ãã ãã ãããã®åŸããããã¡é
åã䜿çšãã颿°ãåç
§ããã°ããŒãã«å€æ°ã«å ããŠãé
åèªäœãåç
§ããå¥ã®ã°ããŒãã«ããããã£ããããŸãã ãã®çµæãã³ãŒããå¶åŸ¡ããããšãããå°é£ã«ãªããŸã;ä»ã®å Žæã§äœ¿çšããå Žåãäœæè
ã¯é¢æ°å®çŸ©ãšé
åå®çŸ©ã®äž¡æ¹ã远å ããå¿
èŠãããããšãèŠããŠããå¿
èŠããããŸãã ãŸãããã®ãããªã³ãŒãã¯ã颿°åã®äžææ§ã確èªããããšã«å ããŠããã®é¢æ°ãäŸåããé
åã®ååãã°ããŒãã«åå空éã«ãäžæã§ããããšã確èªããå¿
èŠããããããä»ã®ã³ãŒããšçµã¿åãããããšãå°é£ã§ãã
ã¯ããŒãºãããšããããã¡ãŒé
åãããã«äŸåãã颿°ã«é¢é£ä»ããããšãã§ããŸãïŒãããŠãã¡ããšããã±ãŒãžåã§ããŸãïŒãåæã«ãåå空éã®ç«¶åãã©ã³ãã ãªçžäºäœçšã®ãªã¹ã¯ãªãã«ãã°ããŒãã«åå空éã®å€éšã«é
åã«èšå®ãããããããã£åãä¿åã§ããŸãã
ããªãã¯ã¯ããšã¯ã¹ãã¬ãã·ã§ã³é¢æ°ã«çµã¿èŸŒã¿ïŒã€ã³ã©ã€ã³ïŒå®è¡ããããšã«ããã1ã€ã®è¿œå ã®å®è¡ã³ã³ããã¹ããäœæããããšã§ããããã«ãããå€éšã³ãŒãã§äœ¿çšããããã¹ãããã颿°ãè¿ãããŸãã ãããã¡ãŒé
åã¯ãçµã¿èŸŒã¿ïŒã€ã³ã©ã€ã³ïŒå®è¡ã䌎ãåŒé¢æ°ã®ããŒã«ã«å€æ°ãšããŠå®çŸ©ãããŸãã å®è¡ã¯1åè¡ããããããé
åã¯1åã ãäœæãããŸãããããã«äŸåãã颿°ã¯ç¹°ãè¿ã䜿çšã§ããŸãã
次ã®ã³ãŒãã§ã¯ãã»ãšãã©å€æŽãããªãHTMLæååãè¿ã颿°ãäœæãããŸããããã®æåã·ãŒã±ã³ã¹ã«ã¯ã颿°ãåŒã³åºããããšãã«ãã©ã¡ãŒã¿ãŒãä»ããŠã¢ã¯ã»ã¹å¯èœãªå€æ°æ
å ±ãå«ãŸããŠããå¿
èŠããããŸãã
ãã¹ãããã颿°ãªããžã§ã¯ããžã®åç
§ã¯ãåŒé¢æ°ã«çµã¿èŸŒãŸããå®è¡ããè¿ãããã°ããŒãã«å€æ°ã«å²ãåœãŠãããŸãããããã£ãŠããã®é¢æ°ãªããžã§ã¯ãã¯ã°ããŒãã«é¢æ°ãšããŠåŒã³åºãããšãã§ããŸãã ãããã¡é
åã¯ãå€éšåŒé¢æ°ã®ããŒã«ã«å€æ°ãšããŠå®çŸ©ãããŸãã ã°ããŒãã«åå空éã«é
眮ãããŠããããããã䜿çšãã颿°ã®åŒã³åºãããšã«åäœæãããŸããã
var getImgInPositionedDivHtml = (function(){ var buffAr = [ '<div id="', '',
1ã€ã®é¢æ°ãå¥ã®ïŒãŸãã¯è€æ°ã®ïŒé¢æ°ã«äŸåããŠãããããããã®ä»ã®é¢æ°ãä»ã®ã³ãŒãã§çŽæ¥åŒã³åºãããããšãæå³ããŠããªãå Žåãåãææ³ã䜿çšããŠãããã®é¢æ°ããªãŒãã³ã¢ã¯ã»ã¹ã®1ã€ã«ã°ã«ãŒãåã§ããŸãããããã£ãŠãè€éãªå€æ©èœããã»ã¹ããç°¡åã«ç§»æ€ã§ããã«ãã»ã«åãããã³ãŒãã¢ãžã¥ãŒã«ã§äœæãããŸãããã®ä»ã®äŸ
ãããããã¯ããŒãžã£ãŒã®æãæåãªã¢ããªã±ãŒã·ã§ã³ã®1ã€ã¯ãDouglas Crockford ECMAScriptãªããžã§ã¯ãã§ãã©ã€ããŒãã€ã³ã¹ã¿ã³ã¹å€æ°ããšãã¥ã¬ãŒãããææ³ã§ããECMAScriptãªããžã§ã¯ãã®ãã©ã€ããŒãéçã¡ã³ããŒã®ãšãã¥ã¬ãŒã·ã§ã³ãå«ããçµã¿èŸŒã¿ã®ã¢ã¯ã»ã·ããªãã£ãšå¯èŠæ§ãå«ãããããçš®é¡ã®ã¹ã³ãŒãæ§é ã§æ¡åŒµã§ããŸããã¯ããŒãžã£ãŒã¢ããªã±ãŒã·ã§ã³ã¯ç¡æ°ã«ãããŸãããããããã©ã®ããã«æ©èœããããçè§£ããããšããããããããããã©ã®ããã«äœ¿çšã§ããããçè§£ããããã®æè¯ã®ã¬ã€ãã§ããã©ã³ãã éå
åã蟌ãŸãã颿°ãããããäœæããã颿°ã®æ¬äœã®å€éšã§ã¢ã¯ã»ã¹å¯èœã«ãããšãã¯ããŒãžã£ãŒã圢æãããŸãããããã£ãŠãã¯ããŒãžã£ãŒã¯éåžžã«ç°¡åã«äœæã§ããŸãããã®çµæãã¯ããŒãžã£ãŒãèšèªã®æ©èœã§ããããšãçè§£ããŠããªãjavascriptéçºè
ã¯ãã¯ããŒãžã£ãŒãäœæãããããšãçµæã«ãªãå¯èœæ§ãããããšãèªèããã«ãæãããªçµæãªãã§ããŸããŸãªã¿ã¹ã¯ã«åã蟌ã¿é¢æ°ã䜿çšããŸããå¶çºçãªã¯ããŒãžã£ã®äœæã«ã¯ã次ã®ã»ã¯ã·ã§ã³ã§èª¬æããIEã®ã¡ã¢ãªãªãŒã¯åé¡ãªã©ã®å¯äœçšããããŸãããŸããã³ãŒãã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããçç±ã¯ãã¯ããŒãžã£ãŒèªäœã§ã¯ãªããå®éãæ
éã«äœ¿çšãããšãã¯ããŒãžã£ãŒã¯å¹æçãªã³ãŒãã®äœæã«å€§ããè²¢ç®ããå¯èœæ§ããããŸãããã€ã³ãã¯ãã¹ãããã颿°ã«ããããã®äœ¿çšã¯å¹çã«åœ±é¿ããå¯èœæ§ããããŸãããã¹ãããã颿°ãDOMèŠçŽ ã®ã€ãã³ããã³ãã©ãŒãšããŠäœ¿çšãããå Žåãäžè¬çãªæ¹æ³ã§ããããšãã°ã次ã®ã³ãŒãã䜿çšããŠãonclickã€ãã³ããã³ãã©ãŒããªã³ã¯èŠçŽ ã«è¿œå ã§ããŸãã var quantaty = 5; function addGlobalQueryOnClick(linkRef){ if(linkRef){ linkRef.onclick = function(){ this.href += ('?quantaty='+escape(quantaty)); return true; }; } }
addGlobalQueryOnClick颿°ãåŒã³åºããããã³ã«ãæ°ãããã¹ãããã颿°ãäœæãããŸãïŒå²ãåœãŠããããšãã«ã¯ããŒãžã£ãŒã圢æãããŸãïŒãå¹çã®èгç¹ãããaddGlobalQueryOnClickã1åãŸãã¯2åã ãåŒã³åºããããã©ããã¯é¢ä¿ãããŸãããã颿°ãéäžçã«äœ¿çšãããå Žåãå€ãã®åå¥ã®é¢æ°ãªããžã§ã¯ããäœæãããŸããïŒå
éšåŒé¢æ°ã®èšç®ããšã«1ã€ïŒãäžèšã®ã³ãŒãã¯ãå
éšé¢æ°ãäœæããã颿°ã®å€ã§å©çšå¯èœã«ãªã£ããšããäºå®ïŒã€ãŸããã¯ããŒãžã£ãŒã®çµæïŒãå©çšããŠããŸãããã€ãã³ããã³ãã©ãŒãšããŠåå¥ã«äœ¿çšãã颿°ãå®çŸ©ãããã®é¢æ°ãžã®ãªã³ã¯ãã€ãã³ããã³ãã©ãŒã®ããããã£ã«å²ãåœãŠãããšã§ããŸã£ããåã广ãå®çŸã§ããŸããåäžã®é¢æ°ãªããžã§ã¯ããäœæããããã®ã€ãã³ããã³ãã©ãŒã䜿çšãããã¹ãŠã®èŠçŽ ã¯ããã®åäžã®é¢æ°ãžã®ãªã³ã¯ã䜿çšããŸãã var quantaty = 5; function addGlobalQueryOnClick(linkRef){ if(linkRef){ linkRef.onclick = forAddQueryOnClick; } } function forAddQueryOnClick(){ this.href += ('?quantaty='+escape(quantaty)); return true; }
æåã®ããŒãžã§ã³ã®ãã¹ãããã颿°ã¯ããã®äœ¿çšã«ãã£ãŠäœæãããã¯ããŒãžã£ãŒã䜿çšããããšãæå³ããŠããªãããããã¹ãããã颿°ã䜿çšããããããã£ãŠæ¬è³ªçã«åäžã®é¢æ°ãªããžã§ã¯ãã®ã»ãããäœæããããã»ã¹ãç¹°ãè¿ããªãã»ããå¹ççã§ããåæ§ã®ååãã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ãªããžã§ã¯ãã«é©çšãããŸããæ¬¡ã®ã³ã³ã¹ãã©ã¯ã¿ãŒæ§é ã«äŒŒãã³ãŒãã衚瀺ãããããšã¯çãããããŸããã function ExampleConst(param){ this.method1 = function(){ ...
ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããŠãæ°ããExampleConstïŒnïŒãå®è¡ããŠãªããžã§ã¯ããäœæãããã³ã«ãã¡ãœãããšããŠæ©èœãã颿°ãªããžã§ã¯ãã®æ°ããã»ãããäœæãããŸããã€ãŸããããå€ãã®ãªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹ãäœæããããšãããå€ãã®å¯Ÿå¿ãã颿°ãªããžã§ã¯ããäœæãããŸãããã°ã©ã¹ã¯ããã¯ãã©ãŒãã®javascriptãªããžã§ã¯ãã®ãã©ã€ããŒããã£ãŒã«ãããšãã¥ã¬ãŒãããææ³ã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒå
ã§äœæããããªããžã§ã¯ãã®ãªãŒãã³ããããã£ã«ãã¹ãããã颿°ã®ãªããžã§ã¯ããžã®åç
§ãå²ãåœãŠãçµæãšããŠçããã¯ããŒãžã£ãŒã䜿çšãããŸãããã ãããªããžã§ã¯ãã®ã¡ãœãããã³ã³ã¹ãã©ã¯ã¿ãŒå
ã§åœ¢æãããã¯ããŒãžã£ãŒãå©çšããªãå Žåãåã€ã³ã¹ã¿ã³ã¹ã«è¿œå ã®é¢æ°ãªããžã§ã¯ããäœæãããšããªããžã§ã¯ãã®äœæããã»ã¹ãé
ããªããããå€ãã®ãªãœãŒã¹ãå¿
èŠã«ãªããŸãããã®å Žåã颿°ãªããžã§ã¯ããäžåºŠäœæããã³ã³ã¹ãã©ã¯ã¿ãŒã®ãããã¿ã€ããªããžã§ã¯ãã®å¯Ÿå¿ããããããã£ã«ããããžã®åç
§ãå²ãåœãŠããšããã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«ãã£ãŠäœæããããã¹ãŠã®ãªããžã§ã¯ãã§äœ¿çšã§ããŸãã function ExampleConst(param){ this.publicProp = param; } ExampleConst.prototype.method1 = function(){ ...
Internet Explorerã®ã¡ã¢ãªãªãŒã¯ã®åé¡
Internet Explorerãã©ãŠã¶ïŒããŒãžã§ã³4ã6ïŒãã¹ãæã¯çŸåšã®ããŒãžã§ã³ã¯6ïŒã§ãã¹ãæžã¿ïŒã«ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã·ã¹ãã ã«æ¬ é¥ããããŸãããããã®ç°å¢ãªããžã§ã¯ãããå圢ããªã³ã¯ã®äžéšã§ããå ŽåãECMAScriptãªããžã§ã¯ããšäžéšã®ç°å¢ãªããžã§ã¯ãã®åŠçã劚ããããŸãããã®å Žåã®ç°å¢ãªããžã§ã¯ãã¯ãDOM Nodeãªããžã§ã¯ãïŒããã¥ã¡ã³ããªããžã§ã¯ããšãã®åå«ãå«ãïŒããã³ActiveXãªããžã§ã¯ããšããŠçè§£ãããŸãã埪ç°ãªã³ã¯ã«ãããã®1ã€ä»¥äžãå«ãŸããŠããå Žåãåå ããŠãããªããžã§ã¯ãã¯ã©ããè§£æŸãããããããã䜿çšããã¡ã¢ãªã¯ãã©ãŠã¶ãéãããããŸã§ã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããªããªããŸãã埪ç°åç
§ãšã¯ã2ã€ä»¥äžã®ãªããžã§ã¯ããéå§ç¹ã«ã€ãªããããã«çžäºã«åç
§ããå Žåã§ããããšãã°ããªããžã§ã¯ã1ã«ãªããžã§ã¯ã2ãåç
§ããããããã£ãããããªããžã§ã¯ã2ã«ãªããžã§ã¯ã3ãåç
§ããããããã£ãããããªããžã§ã¯ã3ã«ãªããžã§ã¯ã1ãåç
§ããããããã£ãããå ŽåãçŽç²ãªECMAScriptãªããžã§ã¯ãã®å Žåããªããžã§ã¯ã1 2ãŸãã¯3ãä»ã®ãªããžã§ã¯ãã¯åç
§ã忢ããçžäºã«åç
§ããã ãã§ãããšããäºå®ãèªèãããã¬ããŒãžã³ã¬ã¯ã¿ãŒã§äœ¿çšã§ããããã«ãªããŸãããã ããInternet Explorerã®å Žåããããã®ãªããžã§ã¯ãã®å°ãªããšã1ã€ãDOM NodeãŸãã¯ActiveXãªããžã§ã¯ãã§ããå Žåãã¬ããŒãžãã³ãã©ãŒã¯ããã®åŸªç°é¢ä¿ãã·ã¹ãã ã®ä»ã®éšåããåé¢ãããŠããããšã確èªã§ãããããããè§£æŸããŸãã代ããã«ããã©ãŠã¶ãéãããããŸã§ããããã¯ãã¹ãŠã¡ã¢ãªã«æ®ããŸããã¯ããŒãžã£ãŒã¯ã埪ç°åç
§ã®äœæã«éåžžã«é©ããŠããŸããããšãã°ãã¯ããŒãžã£ãŒãäœæãã颿°ã®ãªããžã§ã¯ããDOM Nodeãªããžã§ã¯ãã®ã€ãã³ããã³ãã©ãŒãšããŠå²ãåœãŠããããã®ããŒããžã®ãªã³ã¯ããã®é¢æ°ã®ã¹ã³ãŒãå
ã®ã¢ã¯ãã£ããŒã·ã§ã³ãªããžã§ã¯ã/倿°ã®ããããã£ã®1ã€ã«å²ãåœãŠãããŠããå Žåã埪ç°ãªã³ã¯ã衚瀺ãããŸãã DOM_Node.onevent-> function_objectã[[Scope]]-> scope_chain-> Activation_object.nodeRef-> DOM_Nodeãããã¯éåžžã«ç°¡åã§ããããã¹ãŠã®ããŒãžã«å
±éã®ã³ãŒãã®äžéšã§ãã®ãããªãªã³ã¯ã圢æãããµã€ããå°ãèŠããšãã»ãšãã©ã®ã·ã¹ãã ã¡ã¢ãªïŒå Žåã«ãã£ãŠã¯ãã¹ãŠïŒã䜿çšã§ããŸããIEã§onunloadã€ãã³ãã䜿çšããŠã€ãã³ããåŠçããæ©èœãžã®ãªã³ã¯ããªã»ãããããªã©ã埪ç°ãªã³ã¯ã®äœæãé¿ããåé¿ã§ããªãå Žåã¯ä¿®æ£æªââ眮ãè¬ããå¿
èŠããããŸããåé¡ãç¹å®ããã¯ããŒãžã£ïŒããã³ãã®ã¡ã«ããºã ïŒãçè§£ããããšã§ãIEã§ãã®åé¡ãåé¿ã§ããŸãããªãã£ãŒãã»ã³ãŒã³ãã©ãŒãã«ãã£ãŠæžãããŸããã2004幎3æãä¿®æ£ããã³ææ¡è
ïŒMartin Honnenãã€ã³ã»ãšã«ã¯ã³ã»ããªãªïŒããïŒãã©ãã»ã»ã©ã€ãã·ã¥ã¿ã€ã³ã»ããŒã«ã»ã³ãïŒç絡æ€åºïŒãã€ã¯ã·ããã³ããžã§ã³ã»ã¹ããã¯ãã³å士ãã®ã£ã¬ããã»ã¹ãã¹ãLyudmila Likhovidã®ç¿»èš³ã«ãåå ããã ãããããšãããããŸãã