Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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 jquery.getJSON异常行为_Javascript_Jquery - Fatal编程技术网

javascript jquery.getJSON异常行为

javascript jquery.getJSON异常行为,javascript,jquery,Javascript,Jquery,我已经开始尝试javascript和jQuery。我试图创建一个类,将json文件加载到指定的div中,但遇到了一个我不理解的行为: 注意:我知道这段代码不会将任何内容加载到div中,这只是我能找到的显示我不理解的行为的最短示例 当我跑的时候 a = new test("a"); b = new test("b"); 我希望看到“ab”作为输出,但实际输出是“bb”。 但是,如果我允许第一行在调用第二行之前完成,那么将显示预期的输出。我糊涂了 您的\u此是一个全局变量,请在其前面添加var

我已经开始尝试javascript和jQuery。我试图创建一个类,将json文件加载到指定的div中,但遇到了一个我不理解的行为:

注意:我知道这段代码不会将任何内容加载到div中,这只是我能找到的显示我不理解的行为的最短示例

当我跑的时候

a = new test("a"); 
b = new test("b");
我希望看到“ab”作为输出,但实际输出是“bb”。
但是,如果我允许第一行在调用第二行之前完成,那么将显示预期的输出。我糊涂了

您的
\u此
是一个全局变量,请在其前面添加
var

工作示例:

顺便说一句,如果您的代码符合以下要求,那么您的代码就可以正常工作,但是您这里的代码可能不是您将要使用的代码

function test(div) {
    jQuery.getJSON('/example.json', null, function(data) {
        console.log(div);
    });
}
function test(div) {
    jQuery.getJSON('/example.json', null, function(data) {
        console.log(div);
    });
}

如果变量之前未包含
var
,则它将成为全局变量:

_this = this;
应该是

var _this = this;

这是因为您没有正确地删除这个变量,它是全局变量。将行更改为:

var _this = this;
但是,对于您的代码示例,您甚至不需要缓存此

function test(div) {
    jQuery.getJSON('/example.json', null, function(data) {
        console.log(div);
    });
}