JavaScript ã®ä¾å¤ã§ãã "too much recursion" ã¾ã㯠"Maximum call stack size exceeded" ã¯ã颿°ã®å¼ã³åºããå¤ãããå ´åãã颿°ã«åºç¤ã±ã¼ã¹ããªãå ´åã«çºçãã¾ãã
ã¡ãã»ã¼ã¸Error: Out of stack space (Edge)
InternalError: too much recursion (Firefox)
RangeError: Maximum call stack size exceeded (Chrome)
ã¨ã©ã¼ã®ç¨®é¡
ã¨ã©ã¼ã®åå
èªåèªèº«ãå¼ã³åºã颿°ã¯å台颿°ã¨å¼ã°ãã¾ããããæ¡ä»¶ãæºããã¨ã颿°ã¯èªåèªèº«ãå¼ã³åºãã®ãããã¾ããããã¯åºç¤ã±ã¼ã¹ã¨å¼ã°ãã¾ãã
ããã¤ãã®ç¹ã§ãå帰ã¯ã«ã¼ãã«ä¼¼ã¦ãã¾ãã両æ¹ã¨ããåãã³ã¼ããè¤æ°åå®è¡ãã (ç¡éã«ã¼ãã¾ãã¯ç¡éå帰ãé¿ããããã«) æ¡ä»¶ãå¿ è¦ã¨ãã¾ãã颿°ã®å帰å¼ã³åºããæ·±ãããå ´åãã¾ãã¯é¢æ°ãåºç¤ã±ã¼ã¹ãæ¬ ãã¦ããå ´åã JavaScript ã¯ãã®ã¨ã©ã¼ãçºçãã¾ãã
ä¾çµäºæ¡ä»¶ã«å¾ã£ã¦ããã®å台颿°ã¯ 10 åå®è¡ããã¾ãã
function loop(x) {
if (x >= 10) {
// "x >= 10" ã¯çµäºæ¡ä»¶
return;
}
// ä½ããå®è¡
loop(x + 1); // å帰å¼ã³åºã
}
loop(0);
ãã®æ¡ä»¶ã«ãé常ã«å¤§ããå¤ãè¨å®ããã¨åä½ãã¾ããã
function loop(x) {
if (x >= 1000000000000) return;
// ä½ããå®è¡
loop(x + 1);
}
loop(0);
// InternalError: too much recursion
ãã®å台颿°ã¯åºç¤ã±ã¼ã¹ãæ¬ ãã¦ãã¾ããè±åºæ¡ä»¶ããªãããããã®é¢æ°ã¯èªåèªèº«ãç¡éã«å¼ã³åºãç¶ãã¾ãã
function loop(x) {
// The base case is missing
loop(x + 1); // å帰å¼ã³åºã
}
loop(0);
// InternalError: too much recursion
Class error: too much recursion
class Person {
constructor() {}
set name(name) {
this.name = name; // å帰å¼ã³åºã
}
}
const tony = new Person();
tony.name = "Tonisha"; // InternalError: too much recursion
å¤ããããã㣠name ã«ä»£å ¥ãããã¨ã (this.name = name;) JavaScript ã¯ããããã£ãè¨å®ããå¿ è¦ãããã¾ãããããçºçããã¨ãã»ãã¿ã¼é¢æ°ãå¼ã³åºããã¾ãã
set name(name){
this.name = name; // å帰å¼ã³åºã
}
ã¡ã¢: ãã®ä¾ã§ã¯ãã»ãã¿ã¼ãå¼ã³åºãããã¨ããåããã¨ãå度è¡ãããã«æç¤ºããã¾ãã*ã¤ã¾ããå¦çãã¦ããã®ã¨åãããããã£ã«è¨å®ãã¾ãã*ããã«ããã颿°ã¯ä½åº¦ãä½åº¦ãèªåèªèº«ãå¼ã³åºããç¡éã«å帰ãè¡ããã¾ãã
ãã®åé¡ã¯åã夿°ãã²ãã¿ã¼ã«ä½¿ç¨ãããå ´åã«ãçºçãã¾ãã
get name(){
return this.name; // å帰å¼ã³åºã
}
ãã®åé¡ãé²ãã«ã¯ãã»ãã¿ã¼é¢æ°ã®å é¨ã§ä»£å ¥ãããã¨ãã¦ããããããã£ãããã¨ãã¨ã»ãã¿ã¼ãèµ·åãããã®ã¨ç°ãªã£ã¦ãããã¨ã確èªãã¦ãã ãããåããã¨ãã²ãã¿ã¼ã«ãè¨ãã¾ãã
class Person {
constructor() {}
set name(name) {
this._name = name;
}
get name() {
return this._name;
}
}
const tony = new Person();
tony.name = "Tonisha";
console.log(tony);
é¢é£æ
å ±
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