我写了段javascript代码:首先定义了一个全局变量a;第一个函数f1,在f1中改变a的值;第二个函数f2,在f2中调用f1,我在f2中得到的a的值仍然是起初给它赋的值并不是经过f1处理后的值,为什么?
var a="aaa"; function f1(){ a="111"; } function f2() { f1(); alert(a);//aaa } f2();
你的代码少写了一个f2();
如果添加上就弹出 “111”
按你说的逻辑上没有问题 贴代码出来看看
var a="aaa";
f1(){
a="111";
}
f2()
{
f1;
alert(a);//aaa
}
var a="aaa"; function f1(){ a="111"; } function f2() { f1(); alert(a);//aaa }
这样就可以了啊
@xiying:
语法问题,方法调用需要加括号。
f1()
你有没有实际操作过呀?如果加了括号的话就错了。
@xiying: 方法定义要加function,调用必须要加括号。
按道理是要加括号的
var a="aaa"; function f1(){ a="111"; } function f2() { f1(); alert(a);//aaa }
没写function?,要括号。
你想要的代码是不是这样:
var a="aaa"; function f1(){ a="111"; } function f2(){ f1(); alert(a);//111 } f2();
如果调用了f1()就会改变变量a的值
应该加括号,你可以让f1() return a; 试一下