在另一个函数中使用变量然后调用新函数

时间:2016-02-19 16:28:15

标签: javascript variables

这里我试图在函数New()中使用变量,该变量是在函数Test()中创建的。

我仍然对如何使用全局变量感到困惑。

function New(){
Test();
//this show nothing  
alert(myName);
}

function Test() {
    myName = "John";
}


New();

即使我做“var myName”,超出这些功能,它不起作用。

仍在搜索

5 个答案:

答案 0 :(得分:1)

选中此fiddle

要改变的事情:

1)使用function New(){}代替function New{}

2)从测试函数返回myName并将其存储在New function

中的新变量中
function New(){

var myName= Test();

//this show nothing  
alert(myName);
}

function Test() {
   var myName = "John";
    return myName
}   

New();

更新:是的你也可以将myName定义为全局变量并使用它

答案 1 :(得分:0)

如果要声明要使用的变量,请使用var关键字。执行此操作时,您执行此操作的位置决定了"范围"变量。如果要在两个函数中使用变量,可以简单地在两个函数之外声明变量:

 var myVariable = "Something";

 function1(){  
    myVariable = "something else";
 }

 function2(){  
    myVariable = "something else again";
 }

另一种共享数据的方法是将该数据作为参数传递给函数:

 function1(){  
    var myVariable = "Something";
    function2(myVariable);
 }

 function2(someName){  
    alert(someName); // "Something"
 }

在您的情况下,您没有使用" var"用于声明变量的关键字,因此它变为全局变量,但您的代码中存在拼写错误,因此它无法运行。

答案 2 :(得分:0)

全局声明myName,然后在myName函数的返回中定义Test()。声明函数时,无论如何都要使用关键字“function”,“()”和“{}”。

var myName;

function New() {
  
alert(Test());
}

function Test() {
   myName = "John";
   return myName;
}


New(Test);

答案 3 :(得分:0)

它只是一个小型错误。只需在New

之后添加大括号即可
var myName;    // have myName global ie, outside all functions

function New(){      // needs the braces() for New to be a function
    Test(); 
    alert(myName);
}

function Test() {
    myName = "John";
}


New();

答案 4 :(得分:-1)

全局变量的范围适用于特定类,而不限于函数。

您可以在类中创建变量myName但在函数外部创建,并在类中的任何位置使用它。

var myName="";

function New{
Test();
//this show nothing  
alert(myName);
}

function Test() {
    myName = "John";
}


New();