嗨,我想知道是否可以使变量的行为如下:
var someFlag = true;
var someWidth = (()=>(someFlag) ? 16 : 12)();
console.log(someWidth) // 16
someFlag = false;
console.log(someWidth) // would be nice if it was 12
// right now it still prints 16
这样的事情可能吗?我也知道someWidth可能是一个函数,其想法是我有很多代码需要重构,所以我不想做someWidth();
最佳答案
描述对象属性的好方法是here
var someFlag = true;
Object.defineProperty(window, 'someWidth', {
get:()=>someFlag ? 16 : 12
})
console.log(someWidth) // 16
someFlag = false;
console.log(someWidth) // 12
我认为拥有这样的全局变量不是一个好主意。您可以尝试创建自己的对象吗?
关于javascript - Javascript使变量成为每次被引用时都会自行调用的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46417792/