如何在另一个函数中传递访问一个函数的变量

时间:2010-12-24 11:29:31

标签: javascript html

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()的值。但是,如果没有定义值,则会出错。

由于

4 个答案:

答案 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中定义的所有函数都可以访问其中定义的变量。

这里有几种选择。

  1. var2中定义函数var1。 (但是,您将无法使用var2
  2. 轻松致电var2()
  3. varval1声明为全局变量。 (通过去除它前面的var。但是,这通常是一个坏主意) 3)
  4. 从函数varval1返回var1的值,并将其存储在可以访问的变量val2中。
  5. 另外,尝试有意义地命名变量和函数。

    范围:http://en.wikipedia.org/wiki/Scope_%28programming%29

答案 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);
}