Javascript更新全局变量和提升

时间:2015-01-18 20:27:23

标签: javascript variables scope global hoisting

我有一个javascript函数,它使用ajax函数发布到php脚本和一个变量,用于确定结果是返回true还是false。在php中,我通常会将函数分配给变量,例如:

$insert_item = $process->insert_item($item_array);

If ($insert_item->error)
{
//error detected, do something
}

我无法使用javascript完成此操作。相反,如果我将一个函数赋给变量,我会得到一个[object object]返回。作为一种廉价的替代方案,我试图使用全局变量来编写任何错误:

var error = false;

function update_db(formInput) {
    $.post(action.php, formInput, function(data) {

        if (data != 0) {

            error = true

        }
    });

    return error;
}

var updateDb = update_db(form_data);

if (updateDb) {

    alert("error detected");

在此示例中,'错误'尽管ajax函数将其更新为true,但仍然返回false。我已经阅读了有关javascript hoisting的所有内容,但尚未找到解决方案。有没有办法解决?我的问题完全源于ajax函数,我也尝试直接访问以返回任何变量(就像我在PHP中轻松做的那样),但我没有运气!

作为旁注,我觉得有趣的是我可以访问错误'在ajax函数内(返回false)但无法更改它。

0 个答案:

没有答案