如何获取函数内部调用的函数中的变量值

时间:2017-06-13 18:54:32

标签: javascript jquery

我正在尝试在另一个函数中调用一个函数。现在,子函数具有要在警报消息中显示的值。

看看我到目前为止编写的代码:

var subFunction = function(){
  var subValue = "sub value";
}

var mainFunction = function(){
  subFunction();
  alert(subValue);
}

mainFunction();

我收到一条错误消息,指出未定义subValue。

我想使用main函数中子函数中存在的变量的值,我该怎么做?

请提前帮助谢谢:)

4 个答案:

答案 0 :(得分:4)

返回子功能的值

var subFunction = function(){
  var subValue = "sub value";
  return subValue;
}

var mainFunction = function(){
  var test = subFunction();
  alert(test);
}

mainFunction();

答案 1 :(得分:2)

这是范围界定的问题。变量subValue只能在subFunction中访问。您可以将此变为全局变量(可能不合适)或从subFunction返回此值,如下所示:

var subFunction = function(){
  var subValue = "sub value";
  return subValue;
}

var mainFunction = function(){
  var sv = subFunction();
  alert(sv);
}

mainFunction();

答案 2 :(得分:1)

var subValue = "";

var subFunction = function(){
  subValue = "sub value";
}

var mainFunction = function(){
  subFunction();
  alert(subValue);
}

mainFunction();

因为此代码subValue变量应该是类范围变量。

答案 3 :(得分:0)

问题是,你对结果有什么要求?基本上,您需要在表单中公开值,您可以使用它。

  1. 只需返回值
  2. 
    
    var subFunction = function () {
            var subValue = "sub value";
            return subValue;            // <---
        },
        mainFunction = function(){
            console.log(subFunction());
        };
    
    mainFunction();
    &#13;
    &#13;
    &#13;

    1. 在外部范围内使用全局变量或变量
    2. &#13;
      &#13;
      var subFunction = function () {
              var subValue = "sub value";
              returnValue = subValue;     // <---
          },
          mainFunction = function () {
              subFunction();
              console.log(returnValue);
          },
          returnValue;                    // <---
      
      mainFunction();
      &#13;
      &#13;
      &#13;

      1. 将其存储为调用函数的属性
      2. &#13;
        &#13;
        var subFunction = function () {
                var subValue = "sub value";
                subFunction.subValue = subValue; // <---
            },
            mainFunction = function () {
                subFunction();
                console.log(subFunction.subValue);
            };
        
        mainFunction();
        &#13;
        &#13;
        &#13;