假设我在ready函数中声明了一个名为foo
的变量。通常情况下,当函数结束时,本地声明的变量会被删除吗?如何正确存储变量而不将其全局存储?
我想在事件监听器#someid
中使用这个变量。我试过这个,当#someid
发生点击事件时,仍然可以访问foo
变量。
当ready函数结束时,为什么这个变量不被破坏,仍然可以访问?声明一个变量并以这种方式使用它是否安全?我不想全局声明变量,因为我没有。
编辑: 这些事件监听器及其变量存储在哪里?
这里是我的JS:
$(document).ready(function() {
var foo = 0;
//random event listener
$('#someId').on('click', function() { foo++; }); //increment foo
});
相关:[JavaScript闭包如何工作?](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work) –
'foo'在'$的本地'范围内(document).ready'是'click-handler'的父范围 'function'的'outer-scope'中的变量可以在'function'中访问 – Rayon
欢迎来到SO!此外,您提供的代码中没有全局变量。 – evolutionxbox