如果标题与我的问题不符,我们很抱歉,因为我无法用文字解释,只能举例说明。
这是一个非常简单的例子,我的代码不一样且更长:
var i=0;
first();
function first()
{
i=1;
second(i);
}
function second(number)
{
number=2;
}
我已尝试过此代码,它返回1.
我想要的是修改我的全局变量,对我的函数说第二个"嘿,你总是会修改全局变量,但是我在参考中传递给你的是你必须修改的那个&#34 34;
如果有人有答案,那就太好了!他可以节省很多行:D
提前致谢。
答案 0 :(得分:0)
将var名称作为字符串传递可以解决您的问题......
var globalVar = 0;
first();
function first () {
globalVar = 1;
changeGlobal('globalVar');
}
function changeGlobal(v) {
window[v] = 2;
}
document.body.innerHTML = 'globalVar: '+globalVar;
答案 1 :(得分:0)
整数等原始值在Javascript中按值传递。这意味着first()将始终将i设置为1. Second()基本上是no-op。
这应该实现你的目标:
var i=0;
first();
function first()
{
i=1;
i=second(i);
}
function second(number)
{
number=2;
return number;
}