JavaScript 构造函数的输出返回为 'undefined'

JavaScript output from constructor function comes back as 'undefined'

当我将参数传递到 console.log() 内部的 setGear() 时,结果返回 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
this.setGear = function(change) { // public method
  gear = change;
};

不应该return 4.

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

应该做

如果你设置了myBike.setGear,你应该调用myBike.getGear函数来return档位; myBike.setGear(4); console.log(myBike.getGear);