如何正确存储变量而不在全局存储它们?

时间:2016-04-19 11:08:39

标签: javascript jquery

假设我在ready函数中声明了一个名为foo的变量。通常,当函数结束时,会删除本地声明的变量吗?

我想在#someid的事件监听器中使用此变量。我尝试了这一点,foo上发生点击事件时仍然可以访问#someid变量。

当ready函数结束时,为什么这个变量不会被破坏并且仍可访问?声明变量并以这种方式使用它是否安全?我不想全局声明变量,因为我没有。

编辑: 这些事件监听器及其变量存储在哪里?

这是我的js:

$(document).ready(function() {
var foo = 0;

//random event listener
$('#someId').on('click', function() { foo++; }); //increment foo

});

1 个答案:

答案 0 :(得分:5)

  

我想在'#someid'的事件监听器中使用这个变量。我尝试了这个,当'#someid'上发生点击事件时,仍然可以访问foo变量。

这是正确的,您的变量foo仍在范围内,因此可以访问。

  

为什么这个变量不会被破坏并且仍然可以访问?

因为两者都在就绪功能的范围内。

  

我不想全局声明变量。

你没有,所以不要担心。您已声明一个变量,该变量是就绪函数的本地变量,而不是全局变量。