2016-11-05 22 views
1
位置

數組我一直對這個代碼,但我困惑的是,爲什麼它不工作。我已經創造了三個「geocache的」對象,並將它們分配給稱爲「緩存」的數組。爲了測試,我已經賦值的變量「」來無論是在中緩存指數1。然後我定義的變量「挑逗」爲的「lony」屬性。分配對象數組,然後調用它基於

function Geocache (lat, lon, disc){ 
 
    this.laty=lat; 
 
    this.lony=lon; 
 
    this.disc=disc; 
 
} 
 

 
    
 
var loc1=new Geocache(43.77416104496804, -79.50804830784301, "lifesci building"); 
 
var loc2=new Geocache(43.77381242916627, -79.50533927673797, "lassonde building"); 
 
var loc3=new Geocache(43.77305321438563, -79.50353146786193, "vari hall"); 
 
var caches=[loc1,loc2,loc3]; 
 

 
var value = caches[1]; 
 
var tease=value.lony;

這應該回吐的價值「-79.505 ...」,而是我得到預覽「未定義」。 有人可以幫我找出這個代碼有什麼問題,因爲我似乎無法弄清楚。

+0

工作正常,我。 – user2182349

+0

在Chrome上失敗,因爲它似乎與 - > https://developer.mozilla.org/en-US/docs/Web/API/Window/caches發生衝突而且這是隻讀的。所以你的'var caches'實際上等於window.caches ..將你的代碼放在自調函數中,..以阻止你的vars污染全局窗口對象。 PS ..編輯您的代碼片段,並將您的JavaScript代碼放在javascript部分中:) – Keith

回答

1

這裏是你的代碼,在代碼片段的JavaScript部分中的JavaScript。

並修復使用自調用函數來阻止全球泄漏。

function Geocache (lat, lon, disc){ 
 
    this.laty=lat; 
 
    this.lony=lon; 
 
    this.disc=disc; 
 
} 
 

 
(function() { 
 
    var loc1=new Geocache(43.77416104496804, -79.50804830784301, "lifesci building"); 
 
    var loc2=new Geocache(43.77381242916627, -79.50533927673797, "lassonde building"); 
 
    var loc3=new Geocache(43.77305321438563, -79.50353146786193, "vari hall"); 
 
    var caches=[loc1,loc2,loc3]; 
 

 
    var value = caches[1]; 
 
    var tease=value.lony; 
 
    console.log(tease); 
 
})();

相關問題