2016-07-24 25 views
-1

Ich versuche, einen Konstruktor zu codieren, die die folgenden Eigenschaften für jede Instanz von ‚Kunden‘ Objekt Kundenobjekte namens ‚Kunden‘, in dem erzeugt hat:Wie erstellt man Objekte mit dem Konstruktor und gibt das Zufallsergebnis mit der aufgerufenen Methode zurück?

  • (String)
  • Getränke (in der Form von Array von Strings), dh [ "Kaffee", "Cola"]

Hier ist mein Code:

function customer(name, drink){ 
     this.customername = name; 
     this.customerdrink = drink; 
} 

Eine andere Methode namens ‚Orde r‘soll ein zufälliges Getränk (im String-Format) zurückzukehren:

function order(){ 
      return.this.name + ": " + this.drink; 
     } 

Dann werde ich erstellen 'Kunde' Objektinstanz mit den Eigenschaften:

  • Name: "Julie"
  • Getränke: [ "Kaffee", "Cola"]

    var customer1 = { name: "Julie", drink: ["Coffee", "Cola"] }

Ich werde dann die ‚Order‘ Methode aufrufen eine der folgenden Zufalls Lösungen zurückzukehren:

Julie: „Cola“

Julie: „Kaffee“

Wie bekomme ich es die Rückkehr Art des Getränks nach dem Zufallsprinzip?

EDIT:

Soll ich meine neue Kunden Instanz wie diese Stelle schreiben?

var customer1 = { 
    name: "Julie", 
    drink: ["Coffee", "Cola"], 

    order: function(){ 
    return.this.name + ": " + this.drink; 
    } 
    } 

Antwort

1

Wenn Sie meinen, dass jeder Kunde eine unbegrenzte Anzahl an Getränken haben, können sie bestellen können, und Sie wollen eine zufällige Reihenfolge der ein Getränk für den Kunden jedes Mal, wenn Sie rufen Sie die order() Methode dann Sie müssen nur einfach holen ein zufälliges Getränk für die Kunden drinks Eigentum?

var Customer = function(name, drinks) { 
 
    this.drinks = drinks; 
 
    this.name = name; 
 
    this.order = function() { 
 
    var rand = Math.floor(Math.random()*this.drinks.length); 
 
    console.log('ordering a '+this.drinks[rand]); 
 
    return this.drinks[rand]; 
 
    } 
 
} 
 

 
var bob = new Customer('bob', ['Coke', 'Pepsi']); 
 

 
bob.order();

+0

Danke, ich denke, das funktioniert. – 5120bee