如何同步两个不同变量的值,所以当一个值的值发生变化时,另一个变量值也会变化

时间:2018-04-11 19:00:43

标签: javascript

我需要做这样的事情,但我不知道如何

var a = 5

function myFunction(x){
  if(x != 4) {
    x = 4;
  } 
}

myFunction(a);

//afterward, a should equal 4

线索是,当this.x发生变化时,var a也应该改变(我需要能够对很多变量进行复杂的操作,我想通过调用函数来实现)< / p>

甚至可能吗?

2 个答案:

答案 0 :(得分:1)

虽然它不一样,但你可以做类似的事情。

var a = {value: 5};

function myFunction(x){

    if(x.value != 4){
        x.value = 4;
    }
}

myFunction(a);

或者使用数组:

var a = [5];

function myFunction(x){

    if(x[0] != 4){
        x[0] = 4;
    }
}

myFunction(a);

另外我建议使用typesafe比较(===),(!==)

答案 1 :(得分:0)

当您致电myFunction时,会将x的值副本传递给该函数。因此,如果您将其称为传递a,则数字文字5将在那里传递。正如您所说,您希望更改a的值,当您传递给myFunction的参数值与4.不同时。您可以直接参考a来轻松完成你if陈述的正文。如果已定义名为myFunction的变量,运行时将首先检查函数a。由于a中没有定义任何变量myFunction,因此它将查看定义myFunction的范围,全局范围。由于定义了a,因此它将赋值为4。

&#13;
&#13;
var a = 5;

function myFunction(x){

    if(x != 4){
       a = 4;
    }   
}

myFunction(a);

console.log(a);
&#13;
&#13;
&#13;