私はこれを理解しようとしている時間の悪魔を持っています。別の関数の値を返す関数があります。2番目の関数内に3次条件があり、その戻り値は取得されません。理解できません。スコープの問題だと思いますが、解決できません。これはすべてjqueryプラグイン内にあります。
somefunctionA: function(){
var self = this;
var data = somecollection_of_data;
var storeReturn = $.map( data, function( obj, i) {
return (function(i){
return self._returnFilteredData(id);
})(obj.i);
});
},
__returnFilteredData: function(i){
var self = this;
if(some_conditionals){
return (
self.url ?
(function(){
if(some_more_conditionals){
self._getDBdata(); <<-- NEVER FIRES OFF
}
}) : self._getDBdata() <<--- THIS ONE FIRES OFF
)
}
}
},
したがって、最終的に発生するのは、storeReturn配列に「null」が含まれることです。これは、一部の条件では、最初の3次が失敗するためです。私はそれに入ることができません...テストするために。
「_getDBdata()」関数は、他のデータに基づいてハッシュを返すだけです。
何が起こっているかについてのアイデアはありますか?私はすべてを試しましたが、このスコープ/クロージャーの問題を解決できません。