这里我试图在函数New()中使用变量,该变量是在函数Test()中创建的。
我仍然对如何使用全局变量感到困惑。
function New(){
Test();
//this show nothing
alert(myName);
}
function Test() {
myName = "John";
}
New();
即使我做“var myName”,超出这些功能,它不起作用。
仍在搜索
答案 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();