2016-07-12 6 views
-1

Wenn ich einen Parameter in setGear() innerhalb console.log() übergeben, kommen die Ergebnisse undefined zurück, warum ist das? Das Ergebnis der Zahl sein sollte, in dem ich vorbei.JavaScript-Ausgabe von Konstruktor-Funktion kommt zurück als 'undefined'

var Bike = function() { 
    var gear = 2;      // private var set to an arbitrary number 

    this.setGear = function(change) { // public method 
    gear = change; 
    }; 

    this.getGear = function() {  // public method 
    return gear; 
    }; 
}; 

var myBike = new Bike(); 

console.log(myBike.setGear(4)); // returns undefined, should return 4 
console.log(myBike.setGear(3)); // returns undefined, should return 3 
console.log(myBike.setGear(1)); // returns undefined, should return 1 
+2

'setGear' gibt nichts zurück, daher ist' undefined' der Standard-Rückgabewert. –

+2

Setter sollte nichts zurückgeben, der Getter sollte ... – epascarello

+0

@epascarello --- genau! Vielleicht hätte ich das vor dem Posten klarstellen sollen und meine Frage wäre nicht abgelehnt worden. Dieser Code stammt aus einer Übung zum freien Codecamp, die eine Konstruktorfunktion veranschaulichen soll. Ich sehe den Punkt nicht, wenn ich von '' '' getGear() '' 'zurückkomme, aber das ist, was sie zur Verfügung gestellt haben. Ich wollte nur die Ergebnisse in node.js sehen. –

Antwort

0
this.setGear = function(change) { // public method 
    gear = change; 
}; 

nicht 4. zurückgeben sollte

this.setGear = function(change) { // public method 
    gear = change; 
    return gear; 
}; 

tun sollten

0

, wenn Sie die myBike.setGear festlegen, sollten Sie Rufen Sie die Funktion myBike.getGear auf, um den Gang zurückzusetzen. myBike.setGear(4); console.log(myBike.getGear);