gpt4 book ai didi

javascript - 仅在函数上缓存变量

转载 作者:行者123 更新时间:2023-12-02 17:21:06 26 4
gpt4 key购买 nike

是否有一种方法可以缓存一组函数中某个函数的全局变量,而无需直接从另一个函数调用该函数?

例如,如果我有一组包含在父函数中的函数,如下所示:

function parentFunction() {
var myVariable;

someDiv.addEventListener('click', function (e) {
myVariable = e.target;
});

anotherDiv.addEventListener('click', function (e) {
// use myVariable without it changing when the above is fired again.
});

}

全局变量在开始时声明,它在第一个函数中被赋予一个值,该值将传递给第二个函数使用。

但是,如果第一个函数再次触发,我怎样才能阻止它在第二个函数中不断更新呢?

我可以在第二个函数中添加另一个事件监听器来检查第一个函数是否再次触发并确保变量不会更改吗?

最佳答案

您只能在第一个函数中设置该变量一次:

someDiv.addEventListener('click', function (e) {
if (!clickedLink) {
clickedLink = e.target;
}
});

或者,您可以在那里应用任何您想要的逻辑。有时,将这样的状态保存在半全局中以供以后在不同的事件处理程序中使用是一个警告信号,表明您可能存在设计问题。如果您详细解释一下您真正想要做什么,我们可以就是否有更好的方法来解决您的设计问题提供意见。

关于javascript - 仅在函数上缓存变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23947515/

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