假设我在 ready 函数中声明了一个名为 foo
的变量。通常,函数结束时会删除局部声明的变量吗?
我想在 #someid
的事件监听器中使用这个变量。我试过了,当 #someid
上发生点击事件时,foo
变量仍然可以访问。
当就绪函数结束时,为什么这个变量没有被销毁并且仍然可以访问?声明一个变量并以这种方式使用它安全吗?我不想全局声明变量,因为我没有这样做。
编辑: 这些事件监听器及其变量存储在哪里?
这是我的js:
$(document).ready(function() {
var foo = 0;
//random event listener
$('#someId').on('click', function() { foo++; }); //increment foo
});
最佳答案
I want to use this variable in the event listener of '#someid'. I tried this and the foo variable is still accessible when a click-event occurs on '#someid'.
这是正确的,您的变量 foo
仍在范围内,因此可以访问。
Why isn't this variable destroyed and still accessible?
因为两者都在ready函数的范围内。
I don't want to declare the variable globally.
你还没有,所以别担心。您已经声明了一个变量,它是就绪函数的局部变量,而不是全局变量。
关于javascript - 如何在不全局存储变量的情况下正确存储变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716623/