函数中的var作为javascript中另一个函数的参数

函数中的var作为javascript中另一个函数的参数,javascript,function,var,Javascript,Function,Var,我使用javascript,在函数中包装var时遇到了问题 代码如下: function submitData() { let s = dataSaveParam(); if (s != '') { popupConfirm('sure you want to submit?', function() { saveDataToDB(s); }); } } submitData()运行两次。第一次,dataSaveP

我使用javascript,在函数中包装var时遇到了问题

代码如下:

function submitData() {
    let s = dataSaveParam();
    if (s != '') {
        popupConfirm('sure you want to submit?', function() {
            saveDataToDB(s);
        });
    }
}
submitData()
运行两次。第一次,
dataSaveParam()
返回1,第二次返回2

saveDataToDB()
中获取的
s
的值始终为1,这意味着
s
保持不变。

不,您发布的代码中的闭包很好,
s
不是全局共享变量。但是可能在
dataSaveParam
popupConfirm
saveDataToDB
中有缺陷。我同意Bergi的观点。在看不到其他函数的情况下无法判断问题所在。问题可能出在
dataSaveParam()
尝试
console.log
中,并检查它是否始终是1或2个天才!我刚才检查了一下,在我的函数popupConfirm中发现了一个愚蠢的错误。现在它工作得很好。再次感谢你的帮助!谢谢你们所有人!这确实是popupConfirm而不是闭包的问题