簡體   English   中英

如何在函數內部獲取函數中的變量值

[英]How to get the variable value in the function which is called inside a function

我正在嘗試在另一個函數內調用一個函數。 現在,子功能具有一個要在警報消息中顯示的值。

看一下到目前為止我寫的代碼:

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

我收到一條錯誤消息,提示未定義subValue。

我想使用主函數中子函數中存在的變量的值,該怎么做?

請事先幫助謝謝:)

返回子函數的值

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

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

mainFunction();

這是范圍界定的問題。 只能在subFunction內部訪問變量subValue。 您可以將其設為全局變量(可能不希望如此),也可以從subFunction中返回該值,如下所示:

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

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

mainFunction();
var subValue = "";

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

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

mainFunction();

由於此代碼, subValue變量應該是類范圍變量。

問題是,您想要什么結果? 基本上,您需要以一種形式公開該值,您可以使用它。

  1. 只需返回值

 var subFunction = function () { var subValue = "sub value"; return subValue; // <--- }, mainFunction = function(){ console.log(subFunction()); }; mainFunction(); 

  1. 在外部范圍內使用全局變量或變量

 var subFunction = function () { var subValue = "sub value"; returnValue = subValue; // <--- }, mainFunction = function () { subFunction(); console.log(returnValue); }, returnValue; // <--- mainFunction(); 

  1. 將其存儲為調用函數的屬性

 var subFunction = function () { var subValue = "sub value"; subFunction.subValue = subValue; // <--- }, mainFunction = function () { subFunction(); console.log(subFunction.subValue); }; mainFunction(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM