繁体   English   中英

为什么我的 JavaScript 函数不调用另一个函数?

[英]Why doesn't my JavaScript function call another function?

在 html 中,我调用了一个 javascript 函数 setMode(int),它按预期工作。 这个函数完成参数输入,应该再次调用另一个javascript函数mode(String)。 问题是,没有调用 mode(String) 。

function setMode(mode) {
  mode("?set=" + String(mode));
}

function mode(parameter) {
  parameter = (typeof parameter === 'undefined') ? '' : parameter;
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      switch (parseInt(this.responseText)) {
        case 0:
          document.getElementById("radio-auto2").checked = true;
          break;
        case 1:
          document.getElementById("radio-open2").checked = true;
          break;
        case 2:
          document.getElementById("radio-close2").checked = true;
          break;
        default:
      }
    }
  };
  xhttp.open("GET", "mode" + String(parameter), true);
  xhttp.send();
}

函数参数mode隐藏了更高范围的函数mode(parameter) JavaScript 不会保留名称字典并通过它的使用方式来推断您打算使用哪个,因此它无法知道您编写的第一种mode应该与第二种mode 你必须自己做出这种区分。

最简单的解决方案是更改参数名称或函数名称,这样就不会隐藏另一个。 我认为mode对于函数来说是一个糟糕的名字,因为它没有描述函数的作用。 尝试将其重命名为submitMode或其他名称。

尝试更改变量的名称,这样函数和变量就不会被称为同一个东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM