我想创建一个全局const变量,该变量需要在超时的回调中声明。脚本是这样的:

setTimeout(() => {
    const hourandminute = new HourAndMinute();
}, 1000);


这将创建一个新的const变量,但它仅存在于回调中。如何在不进行以下操作的情况下将其全局化?

let hourandminute;

setTimeout(() => {
        hourandminute = new HourAndMinute();
}, 1000);

最佳答案

如果我的评论未引起注意,这是一种可能满足您的要求的模式:请注意,无法重新分配JS常量,但是如果它的值是可变的(如对象),则仍然可以更改它,请看以下示例:



const hourandminute = {};

setTimeout(() => {
    hourandminute.prop1 = 'FOO';
    hourandminute.prop2 = 'BAR';
}, 500);

setTimeout(() => {
    console.log(hourandminute);
}, 1000);

09-25 16:23