2017-04-26 11 views
-1

Ich verfolge einen JS-Kurs und ich frage mich, ob es möglich war, neue Variablen in Schleifen zu erstellen?Wie man neue Objekte in einer Schleife dynamisch erstellt

Mein Beispiel:

JavaScript

var films = { 
    init: function (titre, annee, real) { 
    this.titre = titre; 
    this.annee = annee; 
    this.real = real; 
    }, 
    decrire: function() { 
    var description = this.titre + "(" + this.annee + ")" + ", réalisé par " + this.real; 
    return description; 
    } 
}; 



for (var i = 0; i < 4; i++) { 
    var film = Object.create(films); 
    film = prompt("Film:"); 
    annee = prompt("année"); 
    real = prompt("real"); 
} 

films.forEach(function (film) { 
    console.log(decrire()); 
} 

Ich mag neue Objekte bei jeder Umdrehung der Schleife schaffen und die Leute bitten, für Titel, Jahr und realisator schließlich im Print Konsole. Aber ich habe so etwas für meine letzte Zeile Code:

Uncaught SyntaxError: missing) after argument list

Und meine Webseite fragt mich nicht einen neuen Film setzen =/Ich weiß nicht, wie dies herauszufinden. Wo finde ich eine Dokumentation dazu?

Antwort

0

Fehlende ) zu schließen forEach Funktion. Sollte

films.forEach(function (film){ 
    console.log(decrire()); 
}); 

EDIT sein: Ihr Code enthält auch mehrere andere Fehler. Entschuldigung für das Ignorieren.

Ja, Sie können neue Variablen in Schleifen erstellen. Ich habe Ihren Code korrigiert, so wie Sie es wahrscheinlich wollten. Siehe Code-Kommentare.

// It's recommened to use Capitalized name for a "class" like here. 
// This is NOT very good Javascript, but it works. 
var Film = { 
    init: function (titre, annee, real) { 
    this.titre = titre; 
    this.annee = annee; 
    this.real = real; 
    }, 
    decrire: function() { 
    var description = this.titre + "(" + this.annee + ")" + ", réalisé par " + this.real; 
    return description; 
    } 
}; 

// Initial array of films 
var films = []; 

for (var i = 0; i < 4; i++) { 
    var film = Object.create(Film); 

    // Save user inputs 
    var titre = prompt("Film:"); 
    var annee = prompt("année"); 
    var real = prompt("real"); 

    // Run init function for created 
    film.init(titre, annee, real); 

    // Save it to array of films 
    films.push(film); 
} 

films.forEach(function (film) { 
    // Run decrire() of each film in the array 
    console.log(film.decrire()); 
}); 
+0

Dank für Ihre Hilfe danken! =) – Kapu

+0

Aber ich verstehe etwas nicht. Wenn wir in jeder Runde der Schleife das gleiche Objekt erzeugen: "Film". Warum schreibt die nächste Wende nicht das vorherige Objekt ?: wiederum 1: film = Split, 2017, ... wiederum 1: film = inside out, 2016, .... Für mich schafft die Schleife immer das gleiches Objekt =/Oder filmt es automatisch film1, film2 usw.? – Kapu

0

Sie schließen nicht Ihren forEach:

films.forEach( function (film){ 
    console.log( decrire() ); 
}); 

EDIT: zugelassen, es nur um den Fehler zu beantworten, nicht der Rest der Frage

Verwandte Themen