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