Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t访问回调函数中的其他函数_Javascript - Fatal编程技术网

Javascript Can';t访问回调函数中的其他函数

Javascript Can';t访问回调函数中的其他函数,javascript,Javascript,我在访问ajax post回调函数中的其他函数时遇到问题 请看下面的代码: function HelloWorld(){ var x = 'Hello'; return x; } console.log( HelloWorld() ); // this works fine. $('#newPost').click( function(){ $.post('url', { somedata }, function( data ){ console.l

我在访问ajax post回调函数中的其他函数时遇到问题

请看下面的代码:

function HelloWorld(){
    var x = 'Hello';
    return x;
}

console.log( HelloWorld() ); // this works fine.

$('#newPost').click( function(){

    $.post('url', { somedata }, function( data ){
        console.log( HelloWorld() );
        // this does not work.
        // Error: functions not defined.
    });

});

如何访问其他函数?

如果
HelloWorld
位于
jQuery.ready
范围内,则您将无法访问它,它是该范围的本地函数

如果要使
HelloWorld
global,则应使用window或以下命令:

window.HelloWorld = function(){
  var x = 'Hello';
  return x;
}

然后它将可以在任何其他范围内访问。

您能写一个更完整的示例吗(请参阅)?谢谢,但我认为这是一个完整的问题。范围问题就在这里。不是ajax问题。问题不在您展示的代码中。它们是在闭包中定义的吗?请注意我给出的链接:您必须提供能够再现问题的代码。您的代码无法再现您描述的问题,但运行得非常完美:true answer。非常感谢。