ï¼Stack Overflow ã® olliej ã«ããåçã«ããã°ï¼
å¤ããã¼ã¸ã§ã³ã® JavaScript ã§ã¯ååä»ãã®é¢æ°å¼ãå©ç¨ã§ããããã®ããå帰ã®é¢æ°å¼ã使ãããã¨ãã§ãã¾ããã§ããã
ä¾ãã°ã以ä¸ã®æ§æã¯åä½ãã¾ããã
function factorial(n) {
return !(n > 1) ? 1 : factorial(n - 1) * n;
}
[1, 2, 3, 4, 5].map(factorial);
ãããã
[1, 2, 3, 4, 5].map(function (n) {
return !(n > 1) ? 1 : /* ããã§ã©ãããï¼ */ (n - 1) * n;
});
ã¨ã¯æ¸ãã¾ããã§ãããåé¿çã¨ãã¦ãã® arguments.callee
ã追å ããã以ä¸ã®ãããªãã¨ãã§ããããã«ãªãã¾ããã
[1, 2, 3, 4, 5].map(function (n) {
return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});
ããããããã¯å®éã«ã¯æ¬å½ã«æªã解決æ³ã§ãããããã¯ï¼ä»ã® arguments
ãcallee
ãcaller
ã®åé¡ã¨çµã¿åããã£ã¦ï¼ãä¸è¬çãªå ´åã«ãã¤ã³ã©ã¤ã³åã¨æ«å°¾å帰ãä¸å¯è½ã«ãªãããã§ãï¼ç¹å®ã®ã±ã¼ã¹ã§ã¯ãã¬ã¼ã¹ãªã©ãéãã¦å®ç¾ã§ãã¾ãããæé«ã®ã³ã¼ãã§ããä¸è¦ãªæ¤æ»ãå
¥ãããã«æé©ã§ã¯ããã¾ããï¼ãä»ã®å¤§ããªåé¡ã¨ãã¦ãå帰å¼ã³åºãã«ããã¦ã¯ this
ã®å¤ãå¥ã®ãã®ã«ãªãã¨ãããã®ãããã¾ããä¾ã示ãã¾ãã
var global = this;
var sillyFunction = function (recursed) {
if (!recursed) {
return arguments.callee(true);
}
if (this !== global) {
alert("This is: " + this);
} else {
alert("This is the global");
}
};
sillyFunction();
ECMAScript 3 ã§ã¯ã以ä¸ã®ããã«ååä»ã颿°å¼ã許å¯ãããã¨ã§ãããã®åé¡ã解決ãã¾ããã
[1, 2, 3, 4, 5].map(function factorial(n) {
return !(n > 1) ? 1 : factorial(n - 1) * n;
});
ããã«ã¯å¤ãã®å©ç¹ãããã¾ãã
ããä¸ã¤éæ¨å¥¨ã«ãªã£ãæ©è½ã¨ã㦠arguments.callee.caller
ãããå
·ä½çã«ã¯ Function.caller
ãããã¾ãããããã¯ãªãã§ãããããã©ã®æç¹ã§ããã¹ã¿ãã¯ä¸ã§ä»»æã®é¢æ°ã®æãæ·±ãå¼ã³åºãå
ãè¦ã¤ãããã¨ãã§ãã¾ãããåè¿°ã®ããã«ãã³ã¼ã«ã¹ã¿ãã¯ãè¦ããã¨ã¯ãä¸ã¤ã®å¤§ããªå½±é¿ãããã¾ããããã«ãã£ã¦æ°å¤ãã®æé©åãä¸å¯è½ã«ãªã£ãããã¯ããã«å°é£ã«ãªã£ããããã®ã§ããä¾ãã°ã颿° f
ãæªç¥ã®é¢æ°ãå¼ã³åºããªããã¨ãä¿è¨¼ã§ããªãå ´åã f
ãã¤ã³ã©ã¤ã³åãããã¨ã¯ã§ãã¾ãããåºæ¬çã«ã¯äºç´°ãªãã¨ã§ã¤ã³ã©ã¤ã³åã§ãããããããªãå¼ã³åºãç®æã«ã大éã®é²è·å£ãç©ã¿éãªãã¨ãããã¨ã§ãã
function f(a, b, c, d, e) {
return a ? b * c : d * e;
}
JavaScript ã¤ã³ã¿ã¼ããªã¿ã¼ã¯ãå¼ã³åºããè¡ãããæç¹ã§æä¾ããããã¹ã¦ã®å¼æ°ãæ°åã§ãããã¨ãä¿è¨¼ã§ããªãå ´åãã¤ã³ã©ã¤ã³åãããã³ã¼ãã®åã§ãã¹ã¦ã®å¼æ°ã®ãã§ãã¯ãæ¿å ¥ãããã颿°ãã¤ã³ã©ã¤ã³åã§ããªãããã«ããå¿ è¦ãããã¾ãããã®å ´åã¯ãè³¢ãã¤ã³ã¿ã¼ããªã¿ã¼ã§ããã°ããã§ãã¯ãããæé©ãªå½¢ã«çµã¿æ¿ãã使ãããªãå¤ã¯ãã§ãã¯ããªãããã«ã§ããã¯ãã§ããããããå¤ãã®å ´åããã¯ä¸å¯è½ã§ããããããã£ã¦ã¤ã³ã©ã¤ã³åãããã¨ã¯ä¸å¯è½ã«ãªãã¾ãã
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