我想写一个通用的方法来更改函数内部的属性。它实际上发生在函数内部,但是我认为可以通过以下方式简化问题。
var showItemA = true;
var showItemB = true;
var showItemC = false;
var switchToggle = function (toggleTarget) {
toggleTarget = !toggleTarget
// Do other stuff
console.log(toggleTarget);
//false
};
switchToggle(showItemA);
console.log(showItemA);
//true; but I want it to be false
我很了解this earlier question,但是我需要通用它来处理不同的属性。有没有一种方法可以将外部变量或属性扔给函数并改变其值?
最佳答案
可以使用物体吗?这基本上与您在找到的答案中使用window
相同,但是不会不必要地用大量新变量污染全局空间。
var obj = {};
var key = 'showItemA';
obj[key] = true;
var switchToggle = function (toggleTarget) {
obj[toggleTarget] = !obj[toggleTarget];
console.log(obj[toggleTarget]);
// false
};
switchToggle(key);
console.log(obj[key]);
// false
DEMO