回调和范围

Dan*_*iel 0 javascript jquery

我发现在尝试学习Jquery时要完全理解回调范围有一些问题.我想补充一点,我对Javascript语言的经验很少代码:

var globDom;    // placeholder for DOM fragment

// Getting xml file; jquery parses the file and give me back a DOM fragment
// saveXML is the callback

$.get(requestTarget, {}, saveXML);

// the globDom here is UNDEFINED !

alert(globDom);

// the callback

function saveXML(xmlDom)
{
    globDom = xmlDom;
}
Run Code Online (Sandbox Code Playgroud)

我相信在这里我有一个很大的误解......

有什么建议吗?

谢谢

丹尼尔


啊啊.非常清楚,我完全理解我的假设中的错误:我忘记考虑到数据访问时间(之前的!)和内容可用时间之间的时间间隔.一个相当严重的缺陷 - 批量编程有偏见:-(问题很明显,我现在可以正确解决它.很多,非常感谢您的回应!

Her*_*rms 6

我自己没有使用过jquery,但我的理解是它所做的很多事情都是异步的.该get方法可能不会立即调用您的回调.在尝试访问globDom之前,您需要等到回调运行之后.

尝试在回调方法中发出警报.这个是在get()之后发出警报之前还是之后发生的?