我的問題:命名功能和匿名函數具有不同的效果
我重構一些我的代碼,並在一定長的匿名功能,給予名稱。不幸的是,它以我不明白的方式打破了應用程序。
代碼
匿名版本工作正常,
警報(distributeurs.length);
不同於0
var group = this.settings.group, //group used to store all the markers added to the map
leads = this.model.get("leads"), // collection of leads
distributeurs = new Distributeurs(), // collection of distributeurs
map = this.settings.map,
addLeadsCollection = this.addLeadsCollectionFnContructor();
//ajax calls to populate collection
$.when(leads.fetch({ data: $.param({ departementCode: departementCode }) }), distributeurs.fetch({ data: $.param({ departementCode: departementCode }) })).done(
function() //the function
{
alert(distributeurs.length); //the alert
distributeurs.map(function (distributeur)
{
addLeadsCollection(leads.filter(function (lead)
{
return distributeur.get("id") === lead.get("distribution");
}
));
}
);
}
);
命名的版本:它什麼都不如
警報(distributeurs.length);
總是價值爲0。
var group = this.settings.group, //group used to store all the markers added to the map
leads = this.model.get("leads"), // collection of leads
distributeurs = new Distributeurs(), // collection of distributeurs
map = this.settings.map,
addLeadsCollection = this.addLeadsCollectionFnContructor();
//the function
var addCollections = function() {
alert(distributeurs.length); //the alert
distributeurs.map(function(distributeur) {
addLeadsCollection(leads.filter(function(lead) {
return distributeur.get("id") === lead.get("distribution");
}
));
}
);
};
//ajax calls to populate collection
$.when(leads.fetch({ data: $.param({ departementCode: departementCode }) }), distributeurs.fetch({ data: $.param({ departementCode: departementCode }) })).done(
addCollections()
);
我的問題
爲什麼這兩個功能不同的行爲,我應該如何申報我命名的功能,使之像匿名一。