function var1() {
console.log("in function one");
var varval1 = "life";
alert("var one value"+varval1);
return varval1;
}
function var2() {
console.log("in function two");
alert("var two value"+varval1);
}
var1();
var2();
我想在varval1
内访问var2()
的值。但是,如果没有定义值,则会出错。
由于
答案 0 :(得分:2)
怎么样
function var1(){
console.log("in function one");
var varval1 = "life";
alert("var one value"+varval1);
return varval1;
}
function var2( varval1 ){
console.log("in function two");
alert("var two value"+varval1);
}
var2(var1());
答案 1 :(得分:2)
varval1
在函数var1
的范围内定义,但在var2
的范围内未定义。因此,var1
之外的代码无法使用它。但是,var1
中定义的所有函数都可以访问其中定义的变量。
这里有几种选择。
var2
中定义函数var1
。 (但是,您将无法使用var2
)var2()
varval1
声明为全局变量。 (通过去除它前面的var。但是,这通常是一个坏主意)
3)varval1
返回var1
的值,并将其存储在可以访问的变量val2
中。另外,尝试有意义地命名变量和函数。
答案 2 :(得分:0)
更改定义varval1
的行将执行此操作:
function var1() {
console.log("in function one");
varval1 = "life";
alert("var one value"+varval1);
return varval1;
}
这也等同于写作
window.varval1 = "life";
答案 3 :(得分:0)
将var2()
更改为
function var2(){
console.log("in function two");
varval1=var1();
alert("var two value"+varval1);
}