2014-03-13 27 views
2

我處理和的NodeJS我想不通,爲什麼我不能從另一個類函數中調用類的實例。這是我的代碼。請幫忙。Javascript類實例

var StationDAO = require('./StationDAO.js'); 
var StationSearchCriteria = require('./StationSearchCriteria.js'); 

function GasStationService(lat, long, zoom) { 
this.latitude = lat; 
this.longitude = long; 
this.zoom = zoom; 
this.zoomToKilometers = 0.009; 

/* ......... */ 

this.minLat = function() { 
    return this.latitude - this.zoomToKilometers; 
}; 

this.minLong = function() { 
    return this.longitude - this.zoomToKilometers; 
}; 

this.maxLat = function() { 
    return this.latitude + this.zoomToKilometers; 
}; 

this.maxLong = function() { 
    return this.longitude + this.zoomToKilometers; 
}; 

this.criteria = new StationSearchCriteria(this.minLat(), this.minLong(),  this.maxLat(), this.maxLong()); 
this.conn = new StationDAO(criteria); // why this doesnt work 
+0

是將StationDAO模塊定義爲綁定到module.exports的單個函數嗎? – ilmirons

+0

是彈性搜索DB訪問的類,是module.exports – TomHonner

+0

StationDAO有沒有異步代碼? (也許某些東西在你調用它的時候還沒有初始化)。 – ilmirons

回答

1

你傳遞的標準沒有定義我假設你想通過this.criteria isntead。

this.criteria = new StationSearchCriteria(this.minLat(), this.minLong(), this.maxLat(), this.maxLong()); 
this.conn = new StationDAO(this.criteria); //this should work 
+0

如果'criteria'沒有被定義,那麼this.criteria是如何存在的? –

+0

this.criteria與標準不一樣。我嚴重不瞭解你的評論。 – Syd

+0

'this'指針指向當前對象的變量,在問題語句中'criteria'是一個變量,它是StationSearchCriteria類的實例並已被初始化。 –