javascript - 如何在不全局存储变量的情况下正确存储变量?

标签 javascript jquery

假设我在 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/

相关文章:

javascript - JQuery UI 拖放和排序

在 IE7+ 中部分重新加载后未附加 Javascript 事件

javascript - 如何使用 Javascript 自动打印一系列 HTTP 搜索查询的搜索结果?

javascript - 在 Shopify 中通过 Javascript 将产品价格增加 20%

javascript - 要根据条件显示的图库图像

javascript - 为什么 $(this).val() 在第二种方法中给我第一种方法的值?

javascript - 实现多线程行为

javascript - 为什么在这种情况下触发和点击不起作用?

javascript - jQuery UI ToolTip 位置的奇怪行为

jquery - 如何使用 CSS 和 jQuery 创建简单的选项卡?