2016-11-05 2 views
1

Ich habe an diesem Code gearbeitet, aber ich bin verwirrt, warum es nicht funktioniert. Ich habe drei "Geocache" Objekte erstellt und sie einem Array mit dem Namen 'Caches' zugewiesen. Um zu testen, habe ich die Variable "Wert" zu was auch immer in Index 1 von Caches zugewiesen. Ich definierte dann die Variable "tease" als die "lony" Eigenschaft von Wert.Zuweisen von Objekten zu einem Array, dann rufen Sie es aus dem Array basierend auf Position

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;

Dies sollte den Wert von „-79,505 ...“ spucken zurück, sondern erhalte ich eine „undefiniert“ in der Vorschau. Kann mir bitte jemand helfen, herauszufinden, was mit diesem Code nicht stimmt, weil ich es nicht herausfinden kann.

+0

funktioniert gut für mich. – user2182349

+0

Auf Chrom es scheitert, weil es scheint zu kollidieren mit -> https://developer.mozilla.org/en-US/docs/Web/API/Window/caches Und das ist nur lesbar. Ihre "Var-Caches" entsprechen also tatsächlich window.caches. Platzieren Sie den Code in der selbstaufrufenden Funktion, .., um Ihre Vars zu stoppen, die das globale Fensterobjekt verschmutzen. PS .. bearbeiten Sie Ihr Code-Snippet, und setzen Sie Ihren Javascript-Code in den Javascript-Abschnitt ... :) – Keith

Antwort

1

Hier ist Ihr Code, mit dem Javascript im Javascript-Teil des Snippets.

Und ein Fix, um eine selbstaufrufende Funktion zu verwenden, um das globale Leck zu stoppen.

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); 
 
})();

Verwandte Themen