假设我在ready函数中声明了一个名为foo
的变量。通常,当函数结束时,会删除本地声明的变量吗?
我想在#someid
的事件监听器中使用此变量。我尝试了这一点,foo
上发生点击事件时仍然可以访问#someid
变量。
当ready函数结束时,为什么这个变量不会被破坏并且仍可访问?声明变量并以这种方式使用它是否安全?我不想全局声明变量,因为我没有。
编辑: 这些事件监听器及其变量存储在哪里?
这是我的js:
$(document).ready(function() {
var foo = 0;
//random event listener
$('#someId').on('click', function() { foo++; }); //increment foo
});
答案 0 :(得分:5)
我想在'#someid'的事件监听器中使用这个变量。我尝试了这个,当'#someid'上发生点击事件时,仍然可以访问foo变量。
这是正确的,您的变量foo
仍在范围内,因此可以访问。
为什么这个变量不会被破坏并且仍然可以访问?
因为两者都在就绪功能的范围内。
我不想全局声明变量。
你没有,所以不要担心。您已声明一个变量,该变量是就绪函数的本地变量,而不是全局变量。