2015-06-21 259 views
0

我正在爲我的工作場所編寫一些遺留代碼,無法弄清楚如何處理返回的數據對象中的數據。該retrieveThis功能應該檢索對象數據:如何從此對象提取數據?

myObj.retrieveThis(new myObj.getThisData({num : 10, page : 1, sorting : "stampDescending"}), function() {myCallback(this);}); 
var myObj = function() { 
    var getThisData = { 
     // this function populates an array and returns it to the retrieveThis function 
    } 
    var theObject = { 
     retrieveThis: function(a, b) { 
      var OBJ = {}; 
      // OBJ is populated by the data from var getThisData...I checked 
      setTimeout(function() { 
       b(OBJ); 
      }, 1000); 
     } 
    } 
    return theObject; 
})(); 

我遇到麻煩數據(「theObject」)我的回調函數(或全部)。我通過this到myCallBack函數(),其中myCallBack函數是:

function myCallback(obj) { 
    alert(Object.keys(obj)); 
} 

警報框顯示按鍵,包括documentjQuery,和myObj的列表。它看起來像來自OBJ的數據是從數組allTheData中填充的,但我似乎無法通過它返回(作爲返回對象;)來處理它。我在哪裏錯了?

注 - 我無法修改此遺留代碼。我需要處理「theObject」。

+0

你怎麼定義它通過_this_? – Grundy

+0

我把這個作爲參數傳遞給我的回調函數 –

+0

似乎你提供了一個不正確的示例:你使用'myObj.getThisData'作爲構造函數,但是在你的'myObj'中看起來不是這個屬性,而且你也只是本地對象' getThisData' – Grundy

回答

2

您傳遞錯誤的回調函數

裏面你帶參數調用它,所以你應該用參數

myObj.retrieveThis(
    new myObj.getThisData({num : 10, page : 1, sorting : "stampDescending"}), 
    myCallback); 

在這種情況下,第一個參數來myCallback傳遞OBJ對象

+0

是的,這是做到了。最佳答案 –

+0

我以爲我可以通過這個作爲我的回調 –

+0

在你的情況下的參數 - _this_是指全局對象_window_ – Grundy