简体   繁体   中英

Is there a way to change a variable’s value given its name in a function?

Is what I'm trying to accomplish possible? I hear using globalThis is the best alternative to window, frames, etc. but I can't get it to function. Any help would be appreciated!

var x = true;
var y = true;

function makeFalse(changeVar) {
  globalThis.changeVar = false;
}

makeFalse("x");
makeFalse("y");

console.log(x); //expecting: false, returning: true
console.log(y); //expecting: false, returning: true

You can update them using global window object or with this or with globalThis inside the function.

this and globalThis inside makeFalse function refers to global window object itself.

 var x = true; var y = true; function makeFalse(changeVar) { // window[changeVar] = false; // this[changeVar] = false; globalThis[changeVar] = false; } makeFalse("x"); makeFalse("y"); console.log(x); //expecting: false, returning: true console.log(y);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM