我想创建一个单独的函数来切换我的代码的任何布尔值,但是我无法获得预期的结果:
function toggle(x){
x=!x;
}
var test=false;
toggle(test);
alert(test);
为什么不返回true
?
答案 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;