程序最大调用堆栈超出

时间:2016-06-15 06:28:50

标签: javascript

每当我按下程序中的按钮时,它会说超出最大通话大小,我不知道如何让我的程序运行。

这是代码。

TEMP_HR(EMP_ID)
function check() {
  var input = document.getElementById("num").value;
  var check = /^[0-9]*$/;
  check.test(input) ? window.alert("You have only entered numeric characters! Please proceed to press one of the other buttons.") : window.alert("Please enter only numbers!");
}

function abs() {
  var abs_input = document.getElementById("num").value;
  document.write("The absolute value of your number is: " + abs(abs_input));
}

function round() {
  var input = document.getElementById("num").value;
  document.write("The value of your number rounded is: " + round(input));
}

function log() {
  var input = document.getElementById("num").value;
  document.write("The natural logarithm of your number is: " + log(input));
}

1 个答案:

答案 0 :(得分:3)

abs功能中,abs(abs_input)会再次调用该功能。在其中,它将再次发生。然后再次。然后再次。然后再次。并且......最终计算机将无法记住您拨打它的次数以及从哪里开始。

你可能想要的是在你的Math.abs(abs_input)功能中调用abs() - 一个与你的abs()功能不同的内置功能,这样你就无法获得无限的功能递归(一个函数调用自己,直到它不能再进行)。

roundMath.round以及logMath.log相同。