我正在努力解决这个问题。我有一个函数返回另一个函数的值。在第二个函数中,我有一个第三条件,它不会得到那个回报。我想不通。我确定这是范围问题,但我无法解决。这一切都在一个 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”,因为在某些条件下,第一个三级失败。我无法进入它...进行测试。
“_getDBdata()”函数只返回一个基于其他数据的哈希值。
关于正在发生的事情有什么想法吗?我尝试了所有方法,但无法解决此范围/关闭问题。