2014-06-21 85 views
0

我想從另一個函數調用對象的函數,並且得到「未定義不是函數」錯誤。我認爲有一些愚蠢的錯誤,但我無法弄清楚。調用對象的函數 - 未定義不是函數

function dataProvider() { 

    var self = this; 

    self.loadData = ko.computed(function(){ 

     var data = new Data(self.getJson().data); //here comes the error 
     ... 


    }); 

    self.getJson = function(){ 
     if(typeof jsonVar !== 'undefined') 
      return jsonVar; 
     else { 
      ... 
     } 


    }; 

} 

jsonVar被定義,它是一個有效的JSON。數據是一個對象,但self.getJson()只是不起作用。編輯: 這不是關於調用私人或公共方法。問題是我不能調用對象的方法。

+0

確定,確切發生在錯誤的代碼行? 'ko.computed'呢?這是真的定義?無論如何,嘗試添加一些日誌進行調試,比如'console.log(self.getJson);'就在代碼的關鍵行之前。 – basilikum

+0

我真的沒有看到「重複」問題的連接。 – basilikum

+0

謝謝你的迴應,是的,它在代碼的確切線上。 你是對的,「重複」的問題是關於別的,我已經投票重新開放, – DropDropped

回答

0

你應該嘗試一下這樣的

self.loadData = ko.computed(function(){ 
    var json = self.getJson() 
    if(json){ 
     var data = new Data(json.data); 
    } 
}); 
相關問題