使用函数切换布尔值?

时间:2016-06-07 15:48:50

标签: javascript

我想创建一个单独的函数来切换我的代码的任何布尔值,但是我无法获得预期的结果:

function toggle(x){
  x=!x;
}
var test=false;
toggle(test);
alert(test);

为什么不返回true

1 个答案:

答案 0 :(得分:7)

布尔数据类型按值传递。因此,对参数x所做的任何更改都不会反映实际变量test。您需要从函数返回更新的值并将其分配回变量。

function toggle(x) {
    return !x;          // Return negated value
}

var test = false;
test = toggle(test);    // Assign the updated value back to the variable
alert(test);

但是,如comments所述,最好使用

test = !test;