Problem: Ich versuche, einen Konstruktor Funktion namens Wizard zu erstellen, die zwei Parameter verwendet: Name und Zauber, und dann ein Objekt-Assistenten erstellen:Wie erstellt man eine Konstruktorfunktion?
„Jede einzelne Instanz des Assistenten einen Namen Eigenschaft haben muss (a string), eine Spells-Eigenschaft, die ein Array von Strings darstellt, und eine castSpell-Methode, die einen zufälligen Spell im String-Format zurückgeben kann. "
Das Objekt hat die folgenden Eigenschaften: Name ist "Gorrok" (String), und Zaubersprüche sind "Abrakadabra" und "Cadabraabra" (Array).
Ziel: die castSpell Methode aufzurufen, wie so einen zufälligen Zauber anzuzeigen: Gorrok: Abrakadabra
-Code: Ich habe den folgenden Code bisher nur geschrieben, und ich bin feststecken in diesem Stadium!
function Wizard(name, spells){
this.name = name;
this.spells = [spells];
this.castSpell = function(){
var v = Math.random();
if (v >= 1)
document.write(this.name + " : " + this.spells[0]);
else
document.write(this.name + " : " + this.spells[1]);
}
}
var w = new Wizard("Gorrok", "abracadabra", "cadabraabra");
w.castSpell();
Diese Art der schlurfenden war neu für mich, ich mag, was Sie dort taten. In welchen Situationen würden Sie Math.round (Math.random()) genau verwenden? Und können Sie andere Mathe-Klassen in sich verwenden? – ratboy
'Math.random' gibt einen Gleitkommawert zwischen 0 und 1 zurück,' Math.round' rundet einen Gleitkommawert auf die nächste ganze Zahl ab. Sie sind nicht eingeschränkt, wenn Sie Math. {SomeFunction} -Ergebnis verwenden. Es kann geschrieben werden wie 'var floatBetween0and1 = Math.random(); var number0or1 = Math.round (floatBetween0and1) ' – Freez