2016-07-12 2 views
-1

setGear() 안에 매개 변수를 전달하면 console.log()의 결과가 undefined으로 돌아갑니다. 이유가 무엇입니까? 결과는 내가 전달하고있어 수 있어야합니다. 당신이 myBike.setGear을 설정하면생성자 함수에서 JavaScript 출력이 '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'는 아무 것도 반환하지 않으므로'undefined'가 기본 반환 값입니다. –

+2

setter는 아무것도 반환하지 않아야합니다. getter는 ... – epascarello

+0

@epascarello --- 정확히! 어쩌면 나는 게시하기 전에 그 사실을 명확히 했어야했고 내 질문에 투표가 내려지지 않았을 수도 있습니다. 이 코드는 생성자 함수를 설명하기위한 무료 코드 캠프 운동에서 가져온 것입니다. 나는'''''getGear()''에서 되돌아 오는 점을 보지 못했다. 그러나 그것이 그들이 제공 한 것이다. 방금 node.js에서 결과를보고 싶었습니다. –

답변

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

4.

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

0

을해야 반환하지합니다, 당신은해야 기어를 반환하려면 myBike.getGear 함수를 호출하십시오. myBike.setGear(4); console.log(myBike.getGear);