javascript - 没有全局变量的变量范围和共享信息

标签 javascript jquery

如果我有:

function firstFunction(){
    var counter = 0;
    secondFunction();
    secondFunction();
    secondFunction();
    secondFunction();
}
function secondFunction(){
    counter++;
}

由于变量的局部作用域,我得到了一个错误,但是如果不使用全局变量,我还能如何做这样的事情呢?

最佳答案

一种方法是使用闭包:

(function() {
    var counter = 0;

    function firstFunction() {
        secondFunction();
        secondFunction();
        secondFunction();
        secondFunction();
    }

    function secondFunction() {
        counter++;
    }
})();

或者,您可以将 counter 的值传递给 secondFunction,如下所示:

function firstFunction() {
    var counter = 0;
    counter = secondFunction(counter);
    counter = secondFunction(counter);
    counter = secondFunction(counter);
    counter = secondFunction(counter);
}

function secondFunction(counter) {
    return ++counter;
}

关于javascript - 没有全局变量的变量范围和共享信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16553415/

相关文章:

javascript - 将 jQuery 的 UI 小部件与我的 topNav 混合会破坏水平对齐

c# - 使用 Javascript 将日期设置为 raddatepicker

javascript - 访问后端在另一个域上设置的 cookie

javascript - 使用传单从 url 加载兴趣点

javascript - 从 localStorage 加载的文本在刷新时消失

搜索事件的 Jquery 选择器

javascript - 有人设法让 ASPNET Core 与 Signal R 一起使用吗?

javascript - 更改文本字段边框颜色并验证电子邮件的@

javascript - 使用 JSON 和 jquery 创建动态列表

javascript - 无法使用 jQuery Easy Slider 插件 - 请帮助