是否有可能从一个单一的功能切换全球布尔值?

2 javascript boolean toggle

到目前为止,我正在尝试:

var myBoolean = false; // global

function toggleBoolean(vr) {
    vr = !vr;
}

alert(myBoolean); // false
toggleBoolean(myBoolean);
alert(myBoolean); // false
Run Code Online (Sandbox Code Playgroud)

但显然,它失败了.

编辑:抱歉,我忘了指出我希望该功能可以与许多布尔人合作,而不仅仅是一个

Poi*_*nty 5

是的,您可以从函数切换全局布尔值.您无法在尝试中执行此操作,因为JavaScript严格按值调用.

function toggleBoolean() {
  myBoolean = ! myBoolean;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果你想按名称切换全局,你可以这样做(虽然它有点icky):

function toggleBoolean(name) {
  window[ name ] = ! window[ name ];
}
Run Code Online (Sandbox Code Playgroud)

全局变量(在浏览器中的JavaScript中)是全局对象的属性,称为"窗口".在其他情况下,有一些方法可以将名称与全局上下文相关联.因此,您可以调用该函数,如下所示:

toggleBoolean( "myBoolean" );
Run Code Online (Sandbox Code Playgroud)

请注意,我在那里传递一个字符串,而不是对实际全局变量的引用.