我想知道每次调用子函数时是否可以在父函数中获取变量。
// Will alert the different variable within each parent function
function GetVariableEach() {
alert(eachVar);
}
function function1() {
var eachVar = "1";
GetVariableEach();
}
function function2() {
var eachVar = "2";
GetVariableEach();
}
function function3() {
var eachVar = "3";
getVariableEach();
}
因此,应该发出3次警报,并且每次警报时都会发出相应的变量警告,显然这是一个示例,而不是正常工作的代码。
答案 0 :(得分:0)
不可能这不可能,因为eachVar是本地的。这是将参数传递给函数的要点,即:
function GetVariableEach(myVar) {
alert(myVar);
}
function function1() {
var eachVar = "1";
GetVariableEach(eachVar);
}
function function2() {
var eachVar = "2";
GetVariableEach(eachVar);
}
function function3() {
var eachVar = "3";
GetVariableEach(eachVar);
}
检查此项以获取有关功能参数http://www.w3schools.com/js/js_function_parameters.asp
的更多信息答案 1 :(得分:0)
您只需将参数传递给GetVariableEach
函数即可。有几种方法可以做到这一点,但是根据您的代码和您的要求,您可以采取以下方向:
function GetVariableEach(theVar) {
alert(theVar);
}
function function1() {
var eachVar = "1";
GetVariableEach(eachVar);
}
function function2() {
var eachVar = "2";
GetVariableEach(eachVar);
}
function function3() {
var eachVar = "3";
GetVariableEach(eachVar);
}
或者,您可以创建一个函数数组并循环遍历它们以获取变量:
function function1() {
var eachVar = "1";
return eachVar;
}
function function2() {
var eachVar = "2";
return eachVar;
}
function function3() {
var eachVar = "3";
return eachVar;
}
function getAllFunctionValues() {
var functionArray = [function1(), function2(), function3()];
for (var i = 0; i < functionArray.length; i++) {
alert(functionArray[i]);
}
}
另外,你问了jQuery(我认为你不需要它)。但如果你想要它,这里是jQuery的一个基本例子:
function function1() {
var eachVar = "1";
return eachVar;
}
function function2() {
var eachVar = "2";
return eachVar;
}
function function3() {
var eachVar = "3";
return eachVar;
}
function getAllFunctionValues() {
var functionArray = [function1(), function2(), function3()];
var allValues = "";
for (var i = 0; i < functionArray.length; i++) {
allValues += functionArray[i] + "\n";
}
return allValues;
}
$(document).ready(function () {
alert(getAllFunctionValues());
});
答案 2 :(得分:0)
尝试将eachVar
存储为全局变量。这意味着您可以从任何方法访问变量,从而解决您的问题。这可以这样做:
var eachVar;
function func(){
eachVar = "value";
}
function other function(){
console.log(eachVar); //Will return the value of eachVar
}
这确保变量对所有方法都可见,而不仅仅是单个方法。