Javascript 代码块在返回被调用函数的结果之前完成?我错过了什么?

Javascript code block finishes BEFORE it gets back the result of a called function? What am I missing?

正如标题所说,我在 .JS 文件中有一段 Javascript 代码。在这里,我在一个单独的 ASCX 文件中调用一个函数来更改 x 变量。

$('#button').bind('click', function (event) {
Function();

if(x == true){do something}
if(x == false){do something else}
});

在 ASCX 文件中我有变量和函数:

var x;
function Function(){
if(y > 100)
x = true
if(y < 100)
x = false
}

我希望,如果单击按钮,函数将执行(它会执行),变量会根据条件发生变化(这也会发生)。但是,代码使用代码 运行 之前的 x 值。

因此,如果在单击按钮之前 x 为真,并且将单击该按钮,即使 y 的条件实际上应该将 x 计算为假,结果也会始终计算为真。

我不确定为什么会这样。不幸的是,合并文件以使函数和调用都位于同一位置不是一种选择。任何投入将不胜感激。

此致,罗布

您可以 return 来自 Function。 您可以使用 returned 值进一步检查。

您不需要在调用上下文中分配和检查更新。

一个 JS 文件:

$('#button').bind('click', function(event) {
    x = Function();

    if(x == true) { //do something }

    if(x == false) { 
        //do something else
      }
});

第二个 JS 文件:

function Function() {
    if (y > 100)
        return true
    if (y < 100)
        return false
}
$('#button').bind('click', function (event) {
   x= Function();

    if(x == true){/*do something*/}
    if(x == false){/*do something else*/}
});

var x;
var y = 10;

function Function(){
    if(y > 100)
        x = true
    if(y < 100)
        x = false
}