gpt4 book ai didi

javascript - 检查是否已设置变量不起作用

转载 作者:行者123 更新时间:2023-11-30 09:40:45 24 4
gpt4 key购买 nike

我试图仅在尚未设置变量时设置它。出于某种原因,我用来确定变量是否已设置的逻辑似乎在运行,即使变量是否已设置也是如此。

我的代码是

var l0 = -210;

function add(){
var lThis;
if (lThis == null){
lThis = l0;
console.log('set lThis to '+ lThis);
}
lThis ++;
}

var incrementInterval = setInterval(add, 33);

每次间隔运行时,控制台都会记录“将 lThis 设置为 -210”,因此“if (lThis == null)”似乎什么都不做

参见 example on codepen

最佳答案

使用 setInterval 函数添加从开始每 33 毫秒执行一次,重新创建整个函数范围,包括 lThis。我想你想要实现的是在函数内每次调用 lThis 时加 1。实现这一目标的方法之一是以下列方式使用闭包:

var l0 = -210;

function thunkAdd(){
var lThis = l0;
console.log('set lThis to '+ lThis);
return function inc() {
console.log(lThis);
return lThis ++;
}
}

var incrementInterval = setInterval(thunkAdd(), 33);

请注意,这是编写 JavaScript 的旧方法,使用新的 ES6 语法可以以更紧凑的形式实现:

const l0=-210;

function *add() {
let lThis = l0;
while (true) yield lThis++;
}

const lAdd = add()
const incrementInterval = setInterval(() => {console.log(lAdd.next())}, 33);

关于javascript - 检查是否已设置变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41231612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com