Да, вы можете переключать глобальное логическое значение из функции. Вы не можете сделать это, как в вашей попытке, потому что JavaScript строго по значению.
function toggleBoolean() {
myBoolean = ! myBoolean;
}
Теперь, если вы хотите переключить глобал с помощью name , вы можете сделать это (хотя это немного странно):
function toggleBoolean(name) {
window[ name ] = ! window[ name ];
}
Глобальные переменные (в JavaScript в браузере) - это свойства глобального объекта, который называется «окном». В других контекстах есть способы связать имя с глобальным контекстом. Поэтому вы бы назвали эту функцию так:
toggleBoolean( "myBoolean" );
Обратите внимание, что я передаю строку вместо ссылки на фактическую глобальную переменную.