你必须将args变量传递给匿名函数,但匿名函数并不明显需要args变量,因此你必须记住Dojo何时需要args变量,但是Dojo帮助页面没有说明!那么,Dojo何时需要args变量?
var init = function(){
var contentNode = dojo.byId("content");
dojo.xhrGet({
url: "js/sample.txt",
handleAs: "text",
load: function(data,args){
// fade out the node we're modifying
dojo.fadeOut({
node: contentNode,
onEnd: function(){
// set the data, fade it back in
contentNode.innerHTML = data;
dojo.fadeIn({ node: contentNode }).play();
}
}).play();
},
// if any error occurs, it goes here:
error: function(error,args){
console.warn("error!",error);
}
});
};
dojo.addOnLoad(init);
答案 0 :(得分:2)
澄清一下:您指的是代码示例中的“args”参数,它是“load”和“error”回调函数定义的一部分:
如果需要使用args变量,则只需要它。 Dojo本身并不需要它。通常你不应该需要它。第一个参数应该是您要查找的结果。
但是,如果您需要访问原始XMLHttpRequest对象,那么args.xhr将保留它。
同样,如果你想要访问传递给dojo.xhrGet的原始对象(因为你在它上面存储了某种状态),你可以在args.args上获取它(因此,我通常将该参数命名为ioArgs ,那么它就是ioArgs.args)。