如何在函数生成的javascript中保存变量的结果?

时间:2018-04-17 03:53:02

标签: javascript html

我们假设您有以下 Javascript 代码:

function random() {
    var number = (Math.floor(Math.random() * 2));
    document.getElementById('number').innerHTML = number;

    return number;
};

function searchE(number) {
    var english = englishID[number];
    document.getElementById('english').innerHTML = english; 
};

function searchJ(number) {
    var root = root[number];
    var masu = masu[number];
    var te = te[number];
    document.getElementById('root').innerHTML = root; 
    document.getElementById('masu').innerHTML = masu;
    document.getElementById('te').innerHTML = te; 
};

function process() {  
    var number = random();
    searchE(number);
    searchJ(number);
};

我的问题是当代码只输出随机数和searchE()结果时。我认为问题在于我未正确执行var result = moof()或未正确返回moof的结果。

有人可以告诉我如何让它发挥作用吗?谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

问题在于:

function searchJ(number) {
  var root = root[number];
  var masu = masu[number];
  var te = te[number];

var被提升,所以对于翻译来说,它看起来像是:

function searchJ(number) {
  var root;
  var masu;
  var te;
  root = root[number];
  masu = masu[number];
  te = te[number];

因此,当您尝试访问外部作用域中的那些数组/对象时(我假设这些变量存在于外部作用域中,对吗?),您实际上是在引用内部的当前undefined变量范围。使用与外部范围中使用的变量名不同

function searchJ(number) {
  var foundRoot = root[number];
  var foundMasu = masu[number];
  var foundTe = te[number];